将空间添加到链接列表中

Adding a space to a linked list

本文关键字:列表 链接 空间 添加      更新时间:2023-10-16

在过去的几天里,我一直在思考如何在读取文件后为输出添加空间。该代码从文件中读取并输出到控制台"Ilikecomputers",此时它应该打印出"我喜欢电脑"。关于如何添加空间,有什么建议吗?

感谢

代码低于

#include <iostream>
#include <list>
#include <ctype.h>
#include <fstream>
using namespace std;
void printList(const list<char> &myList);
void fillList(list<char> &myList);
void changeCase(list <char> &myList);
void printList(const list<char> &myList)
{
   list<char>::const_iterator itr;
   cout << "nAfter Conversion: " << endl;
   for (itr = myList.begin(); itr != myList.end(); itr++ ) {
   cout <<*itr;
}
cout << 'n';
}
void fillList(list<char> &myList)
{
ifstream file("test.txt");
    string print;
    while(file >> print){
    for (int i = 0; i<print.length(); i++) {
    myList.push_back(print[i]);
  }
 }
}
int main ()
{
  list<char> myList;
  cout << "Before Conversion: " << endl;
  ifstream file("test.txt");
  string print;
  while(file >> print){    
  cout << print << " ";
 }
  fillList(myList);
  printList(myList);
 return 0;
}

读取时似乎需要指定std::noskipws,否则>>会跳过空格和其他空白字符。只需要放

file >> std::noskipws;

阅读之前。

你可以这样做:

void fillList(list<char> &myList)
{
  ifstream file("test.txt");
  string print;
  while(file >> print){
    for (int i = 0; i<print.length(); i++) {
      myList.push_back(print[i]);
    }
    myList.push_back(' '); // this is what you were missing
  }
}

或者,您可以简单地逐个读取字符并插入所有字符,而不是像operator >>那样隐式跳过空白。