Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 读取最后一个整数文件C++;_C++_File - Fatal编程技术网

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

C++ 读取最后一个整数文件C++;,c++,file,C++,File,我有个问题。如果我不在文件末尾加空格,为什么我的程序不读取最后一个整数?如果我有一个文本文件,只有一个数字,没有结束空间,程序不会读取任何内容 这是我的节目: #include <iostream> #include <fstream> using namespace std; int main(){ fstream f1,f2; int k; int q; cout << "Inserisci numero letter

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

这是我的节目:

#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;
}
#包括
#包括
使用名称空间std;
int main(){
fsf1,f2;
int k;
int-q;
cout>q;
f1.打开(“in.txt”,ios::in);
f2.打开(“out.txt”,ios::out);
if(f1.fail()){
cout>k;
而(!f1.eof()&&q>0){
q--;

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

替换

f1 >> k;

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

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

替换

f1 >> k;

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

你能用英语写你的代码吗?尽管读
!f1.eof()
会导致最后一个值被写两次,我实际上无法解释或再现为什么你的程序不读任何数字。你能为
q
输入一个值>0吗?你可以用英语写你的代码。尽管读
!f1.eof())
将导致写入最后一个值两次,我实际上无法解释或再现程序不读取任何数字的原因。是否为
q
输入值>0?