C++ 逐行读取TXT数据问题

时间:2021-05-15 03:59:26
#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;
}
     
结果提示: error C2065: 'getline' : undeclared identifier

自己翻阅的
ifstream myfile;
CFileException fileException;
CString  FileData;
DWORD dwError;
if(myfile.open(FileName, ios::in|ios::out),&fileException) 
{
while (!myfile.eof())
{
CString FileData;
char  data[165]="";
myfile.getline(data,165);
FileData=data;
{

WritePrivateProfileString("FIT","NUM","11111","C:\\xuliehao.ini");
return 0;
}
}
}
dwError = GetLastError();  
if (dwError != ERROR_NO_MORE_FILES)  

return -1; 

return 0;
  结果每次读出都是空的数据

7 个解决方案

#1


        CStdioFile m_file(filepath,CFile::modeRead);
CString contents;
while (m_file.ReadString(contents))
{

                      //每行数据已经存在contents
}

#2


引用 1 楼 rxguoblp 的回复:
        CStdioFile m_file(filepath,CFile::modeRead);
CString contents;
while (m_file.ReadString(contents))
{

                      //每行数据已经存在contents
}

这样不行吧  我要每行读取  然后进行判断 然后进行另外的写操作 有些行是不标准的  我用第二种方法 只能读取第一行  其他都为空  不知道什么原因

#3


为何不行?通过m_file.ReadString(contents)操作,每行数据都会被逐次读进到contents中,你要进行判断、截取、排序等操作,都可以呀,在while(){}循环里面做呀,有什么问题?

#4


要用C++标准库的话,就用流;要用MFC的话,就用CStdioFile

#5


试试看
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    char a[1][100];
    FILE *file;
file= fopen ("cc.txt","w");


fprintf( file, "%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n","0","0","0 1","0","0","0 g","0! 1a ");

     
    fclose(file);
   file= fopen ("cc.txt","r");  
   while (!feof(file)){
    fscanf(file, "%[^\r\n]\r\n", a[0]);
    printf("%s %d\n",a[0],strlen(a[0])); 
    }
      
     
system("pause");
return 0;
}

#6


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

#7


我去,竟然直接把html染色代码给漏出来了,我又一次高看了csdn C++ 逐行读取TXT数据问题

#1


        CStdioFile m_file(filepath,CFile::modeRead);
CString contents;
while (m_file.ReadString(contents))
{

                      //每行数据已经存在contents
}

#2


引用 1 楼 rxguoblp 的回复:
        CStdioFile m_file(filepath,CFile::modeRead);
CString contents;
while (m_file.ReadString(contents))
{

                      //每行数据已经存在contents
}

这样不行吧  我要每行读取  然后进行判断 然后进行另外的写操作 有些行是不标准的  我用第二种方法 只能读取第一行  其他都为空  不知道什么原因

#3


为何不行?通过m_file.ReadString(contents)操作,每行数据都会被逐次读进到contents中,你要进行判断、截取、排序等操作,都可以呀,在while(){}循环里面做呀,有什么问题?

#4


要用C++标准库的话,就用流;要用MFC的话,就用CStdioFile

#5


试试看
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    char a[1][100];
    FILE *file;
file= fopen ("cc.txt","w");


fprintf( file, "%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n%s\r\n","0","0","0 1","0","0","0 g","0! 1a ");

     
    fclose(file);
   file= fopen ("cc.txt","r");  
   while (!feof(file)){
    fscanf(file, "%[^\r\n]\r\n", a[0]);
    printf("%s %d\n",a[0],strlen(a[0])); 
    }
      
     
system("pause");
return 0;
}

#6


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

#7


我去,竟然直接把html染色代码给漏出来了,我又一次高看了csdn C++ 逐行读取TXT数据问题