C++逐行读取文本文件
C++ Reading text file line by line
我想读取一个txt文件,我想一个一个地处理行上的每个数字,应用一些函数并传递给另一行。当该行结束时,我不知道如何对下面的行应用相同的操作。方法将从每一行获得不同的输出,这就是为什么我必须分别处理每一行。
int number;
ifstream readingFile("a.txt");
while(readingFile >> number){
/* Methods will be applied to each number in the line */
}
readingFile.close();
a.txt
23 4 555
2123 44 21 4
1 45 667 2 112
工作 C++ 代码
解惑 在https://www.tutorialspoint.com/compile_cpp11_online.php中测试一下
只需 copy-paste 执行
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
int main ()
{
//code create a file with numbers
std::ofstream myfile;
myfile.open ("file.txt");
myfile << "123 12 32323\n 4444 55 535\n";
myfile.close();
std::ifstream input( "file.txt" );
for( std::string eachLine; getline( input, eachLine ); )
{
std::istringstream strm(eachLine);
std::string splitedLines;
// loop for each string and add to the vector
while ( strm >> splitedLines )
{
std::stringstream geek(splitedLines);
int num; // can be int, float or double
geek >>num;
//perform action on all num in each line one by one
std::cout<<num<<std::endl;
}
}
return 0;
}
编辑: PythonCode 逐行读取数字
fileName = open('a.txt', 'r')
line = fileName.readline() //reading first line
while(line):
for eachStringNumber in line.split():
number = int(eachStringNumber)
/// Methods will be applied to each number in the line ///
line = fileName.readline() // reading lines one by one in each loop
fileName.close()
我想读取一个txt文件,我想一个一个地处理行上的每个数字,应用一些函数并传递给另一行。当该行结束时,我不知道如何对下面的行应用相同的操作。方法将从每一行获得不同的输出,这就是为什么我必须分别处理每一行。
int number;
ifstream readingFile("a.txt");
while(readingFile >> number){
/* Methods will be applied to each number in the line */
}
readingFile.close();
a.txt
23 4 555
2123 44 21 4
1 45 667 2 112
工作 C++ 代码
解惑 在https://www.tutorialspoint.com/compile_cpp11_online.php中测试一下 只需 copy-paste 执行
#include <iostream>
#include <string>
#include <sstream>
#include <fstream>
int main ()
{
//code create a file with numbers
std::ofstream myfile;
myfile.open ("file.txt");
myfile << "123 12 32323\n 4444 55 535\n";
myfile.close();
std::ifstream input( "file.txt" );
for( std::string eachLine; getline( input, eachLine ); )
{
std::istringstream strm(eachLine);
std::string splitedLines;
// loop for each string and add to the vector
while ( strm >> splitedLines )
{
std::stringstream geek(splitedLines);
int num; // can be int, float or double
geek >>num;
//perform action on all num in each line one by one
std::cout<<num<<std::endl;
}
}
return 0;
}
编辑: PythonCode 逐行读取数字
fileName = open('a.txt', 'r')
line = fileName.readline() //reading first line
while(line):
for eachStringNumber in line.split():
number = int(eachStringNumber)
/// Methods will be applied to each number in the line ///
line = fileName.readline() // reading lines one by one in each loop
fileName.close()