我是C ++的新手,我有一个文本文件,它看起来像
******Text*******
A B C
D E
******Text*******
我想要的字符串是A B C D E. 但我得到了A B CDE 当我跳过这条线时,C和D之间缺少空间。
string arr[1000];
ifstream fin;
string str;
fin.open("D1.txt");
if (!fin.is_open())
{
cout << "Unable to open file hello.txt." << endl;
};
if (fin)
{
while(getline(fin, str,'\n'))
cout << str;
}
答案 0 :(得分:1)
这是因为在C和D之间没有空间,唯一的是&#34; \ n&#34;。 有一些技巧可以解决你的问题: 1-您可以更改文件并在第二行的第一行添加空格,如下所示:
******Text*******
A B C
D E
******Text*******
2-您将代码更改为:
string arr[1000];
ifstream fin;
string str;
fin.open("D1.txt");
if (!fin.is_open())
{
cout << "Unable to open file hello.txt." << endl;
};
if (fin)
{
while(getline(fin, str,'\n'))
cout << str <<" ";
}
这会在每一行之后给出一个空格,它可以解决你的问题。
P.S。:在我的想法中,第二种解决方案更好; - )