c++如何逐行的读取TXT文件中的数据?

时间:2022-01-10 03:58:29
         FILE *pFile=fopen("d:\\list.txt","a+r");
int m=0,j=0,n;
         char cs, pBuf[50];
while(cs!='\0')
{
j=m;
for(n=0;cs!='\n';n++)
{
fseek(pFile,m,SEEK_SET);
fread(&cs,sizeof(char),1,pFile);
m++;
}
    fseek(pFile,j,SEEK_SET);
             fread(&pBuf,sizeof(char),n-1,pFile);
    pBuf[n-1]='\0';
m=m+1;
AfxMessageBox(pBuf);
}
        fclose(pFile); 
 怎么输出的老是第一行啊??
我想要它逐行的输出来  怎么改啊???求高人指点

3 个解决方案

#1


我这个txt 文件 每行都有'\n'的。

#2


getline(&is, szBuffer);

#3


C的
#include <stdio.h>

int main()
{
    FILE * pFile;
    char buf[100];

    pFile = fopen ("list.txt" , "r");
    if (pFile == NULL)
        printf("%s","Error opening file");
    else {
        while (fgets(buf, 100, pFile) != NULL)
printf("%s",buf);
        fclose (pFile);
    }
    return 0;
}


C++的:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{    
ifstream fin("list.txt");  
    string s;  
    while(getline(fin,s))   
        cout << s << endl; 
fin.close();
return 0;
}

#1


我这个txt 文件 每行都有'\n'的。

#2


getline(&is, szBuffer);

#3


C的
#include <stdio.h>

int main()
{
    FILE * pFile;
    char buf[100];

    pFile = fopen ("list.txt" , "r");
    if (pFile == NULL)
        printf("%s","Error opening file");
    else {
        while (fgets(buf, 100, pFile) != NULL)
printf("%s",buf);
        fclose (pFile);
    }
    return 0;
}


C++的:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{    
ifstream fin("list.txt");  
    string s;  
    while(getline(fin,s))   
        cout << s << endl; 
fin.close();
return 0;
}