#include <iostream>
#include <fstream>
#include <string>
#include <cctype> // isdigit();
using namespace std;
int main()
{
ifstream fin;
fin.open("Sayı.txt");
while (!fin.eof()){
string word;
int n;
fin >> word; //First i read it as a string.
if (isdigit(word[0])){ //checks whether is it an int or not
fin.unget(); //
fin >> n; // if its a int read it as an int
cout << n << endl;
}
}
}
假设文本文件是这样的:
100200300 Glass
Oven 400500601
我的目标只是从该文本文件中读取整数并在控制台中显示它们。 所以输出应该像
100200300
400500601
你可以在上面看到我的尝试。作为输出我只得到整数的最后一位。这是一个示例输出:
0
1
答案 0 :(得分:1)
简单地尝试使用字符串流将字符串读取转换为int,如果失败则不是整数,否则它是整数。
ifstream fin;
istringstream iss;
fin.open("Say1.txt");
string word;
while (fin>>word )
{
int n=NULL;
iss.str(word);
iss>>n;
if (!iss.fail())
cout<<n<<endl;
iss.clear();
}
答案 1 :(得分:0)
我认为以下内容应该做你想要的(未经测试的代码):
int c;
while ((fin >> std::ws, c = fin.peek()) != EOF)
{
if (is_digit(c))
{
int n;
fin >> n;
std::cout << n << std::endl;
}
else
{
std::string s;
fin >> s;
}
}