我正在尝试使用>>
流运算符来阅读基于文本的文件,但这似乎是逐字阅读文件:
void printFile(char filename[])
{
ifstream input;
input.open(filename);
char output[50];
if (input.is_open()) {
while (!input.eof()) {
input >> output;
cout << output << endl;
}
}
else cout << "File is not open!";
input.close();
cout << endl;
}
唯一的问题是它不会打印出换行符。
请注意我还在学习C ++,目标是在没有using string
s的情况下实现这一目标(所以没有getline
)。有没有办法做到这一点,还是根本不可能?
答案 0 :(得分:0)
感谢@odin我通过逐个字符而不是单词读取文件来找到解决方案:
void printFile(char filename[])
{
char ch;
fstream fin(filename, fstream::in);
while (fin >> noskipws >> ch) {
cout << ch;
}
fin.close();
}
答案 1 :(得分:0)
您可以按照以下方式确定行的结尾
int main(){
char ch;
fstream fin("filename.txt", fstream::in);
while(fin >> noskipws >> ch){
if(ch == '\n') { // detects the end of the line
cout << "This is end of the line" << endl;
}
}
return 0;
}