C++ 文本文件中的行尾-C++;
我不知道如何实现这个算法 //你有一个像这样的文本文件C++ 文本文件中的行尾-C++;,c++,file,fstream,C++,File,Fstream,我不知道如何实现这个算法 //你有一个像这样的文本文件 12 3 3 4 4 如果该行仅包含一个数字,则跳过它 否则 先读第一个数字,然后读第二个数字,然后做一些工作 那么,我怎么知道这条线已经结束了? 我需要将数据作为整数而不是字符串来处理行尾由字符'\n'表示 因此,当您读取文件时,必须查找'\n'字符,然后才能找到属于哪一行的内容 过程 从文件中提取第一个示例 把它放在缓冲器里 在'\n'字符上拆分缓冲区 分析每一行,只保留带有2个数字的行 请参考教程,如 从以上教程: string
12 3
3
4 4
我需要将数据作为整数而不是字符串来处理行尾由字符
'\n'
表示
因此,当您读取文件时,必须查找'\n'
字符,然后才能找到属于哪一行的内容
过程
'\n'
字符上拆分缓冲区请参考教程,如 从以上教程:
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{
while ( getline (myfile,line) )
{
cout << line << '\n';
}
myfile.close();
}
字符串行;
ifstream myfile(“example.txt”);
如果(myfile.is_open())
{
while(getline(myfile,line))
{
不能运行这个程序,看看发生了什么。它应该是非常直接的
#include <iostream>
#include <string>
#include <fstream>
#include <sstream>
#include <vector>
using namespace std;
int main()
{
ifstream ifs;
ifs.open("input.txt");
string line;
while (getline(ifs, line))
{
cout<<"whole line is: "<<line<<endl;
//can seperate input:
istringstream is(line);
int numberOnLine;
is>>numberOnLine;
vector<int> myvec;
while(is)
{
myvec.push_back(numberOnLine);
is>>numberOnLine;
}
if(myvec.size()<2)
{
cout<<"this line had less than 2 numbers ";
}
else{
cout<<"the line had at least 2 numbers, here they are: ";
for(int i=0; i<myvec.size(); ++i) cout<<myvec.at(i)<<" ";
}
cout<<endl;
}
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
国际单项体育联合会;
ifs.open(“input.txt”);
弦线;
while(getline(ifs,line))
{
可以查找一些文件IO函数,如fgets()
或fstream.getline()
。你应该提供一些代码。这不是一个家庭作业完成者。所以把它作为字符串读入,然后把字符串转换成int
谢谢你的时间,如果我把它作为字符串或字符读入,怎么能把它作为数字处理呢?很简单,你可以做int-substring,而不是string-substring。我会为你更新答案