gpt4 book ai didi

c++ - 读取最后一个整数文件 C++

转载 作者:行者123 更新时间:2023-11-28 01:46:23 31 4
gpt4 key购买 nike

我有一个问题。如果我不在文件末尾放置一个空格,为什么我的程序不读取最后一个整数?如果我有一个只有数字且没有结束空格的文本文件,则程序不会读取任何内容。

这是我的程序:

#include <iostream>
#include <fstream>

using namespace std;

int main(){
fstream f1,f2;
int k;
int q;

cout << "Inserisci numero lettere da leggere : ";
cin >> q;

f1.open("in.txt", ios::in);
f2.open("out.txt", ios::out);

if(f1.fail()){
cout << "Impossibile aprire il file";
exit(1);
}

f1 >> k;

while( !f1.eof() && q > 0){
q--;
cout << k << '\n';
f2 << k;
f1 >> k;
}

f1.close();
f2.close();

return 0;
}

最佳答案

您的程序读取了所有数字,但您在读取操作后进行了 !f1.eof() 检查。当最后一个数字之后有文件结尾时,您永远不会输出它。

替换

f1 >> k;

while( !f1.eof() && q > 0){
q--;
cout << k << '\n';
f2 << k;
f1 >> k;
}

while( f1 >> k && q > 0){
q--;
cout << k << '\n';
f2 << k;
}

并阅读一些关于 input/output via streams 的文章.

关于c++ - 读取最后一个整数文件 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44893235/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com