0
#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
4

2 に答える 2

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();


    }
于 2013-06-09T18:08:15.147 に答える
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;
  }
}
于 2013-06-09T17:33:16.980 に答える