繁体   English   中英

从文本文件c ++打印输出

[英]Printing output from a text file c++

这是我用来打印文本文件输出的代码

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main()
{
string line[30];
ifstream myfile("input1.txt");
int a = 0;

if(!myfile)
{
cout<<"Error opening output file"<<endl;
system("pause");
return -1;
}  
while(!myfile.eof())
{
getline(myfile,line[a],' ');
cout<<line1[a]<<"\n";

}
}

文本输出应该是:(输出与输入完全相同)

ABCDEFGHIJKLMNOPQRSTUVWXYZ

9876543210

MFCJABDEHGIKLTPNORSQWUVYXZ

SPHINCTERSAYSWHAT

524137968

MATLSO

FTERFO

EYBLEIF

LYBWIOL

SYGTHO

FPNOEDESO

LLTDREOI

但相反,我得到这个输出:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

9876543210

MFCJABDEHGIKLTPNORSQWUVYXZ

SPHINCTERSAYSWHAT

524137968

MATLSO

(这两者之间的双重空间)

FTERFO

(此后的双倍空间)

EYBLEIF LYBWIOL(顶部为EYBLEIF,右下方为LYBWIOL,没有新线)

SYGTHO FPNOEDESO LLTDREOI(所有这些从上到下直接在彼此之下)

来自docs

 istream& getline (istream& is, string& str, char delim); Get line from stream into string Extracts characters from is and stores them into str until the delimitation character delim is found. 

看来你在“MATLSO”和“FTERFO”之后有两个额外的空格。 删除它们。

更新:你的代码中的“定界字符”是' '所以"MATLSO "将被视为几行,而不是一行。

空格是获取另一行文本的分隔符。 因此,如果输入文件中的行末尾有尾随空格,则输出中会有一些额外的空行。

有时在文本编辑器中查看输入文件并打开控制字符非常有用,这样您就可以在行尾看到任何其他空格。 例如,在VI编辑器中,我使用“set list”来查看控制字符(行结尾,制表符等)。

为了帮助处理输入文件,您可能希望在解析之前清除它(删除尾随空格)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM