前提・実現したいこと
c言語もしくはc++で空白で区切られた数字が格納されているファイルを読み込みたい(各行のデータの数はまちまち)のですが,
該当のソースコードを動かしてみたところおかしいことが起こったのでどなたかご教授願います.
該当のソースコード
//test.txt 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
c++
1//c++ test.cpp -o test -std=c++11 2#include <stdlib.h> 3#include <stdio.h> 4#include <iostream> 5#include <string> 6#include <sstream> 7#include <fstream> 8 9 10int main(int argc, char* argv[]) 11{ 12 std::string str; 13 std::ifstream ifs("test.txt");//ファイルオープン 14 15 if (!ifs) {//ファイルが開けなかった時の処理 16 printf("file open error\n"); 17 return 0; 18 } 19 20 int n = 0; 21 std::stringstream ss; 22 for(int i=0;i<2;i++){ 23 getline(ifs,str);//一行読み込んでstrに格納 24 printf("%s\n",str.c_str()); 25 ss << str; 26 while( !ss.eof() ) { 27 ss >> n;//空白で区切られた各数値をそれぞれ取り出す. 28 std::cout << n << "\n"; 29 } 30 } 31 32 33 ifs.close(); 34 return 0; 35}
試したこと
上記のソースコードを動かしてみた結果以下のような実行結果になりました
1 2 3 4 5 1 2 3 4 5 5 6 7 8 9 10 11 12
おかしい点は5が二つ出ている点と,6以降がうまく表示できていない点です.
どこがおかしいのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/25 10:51
2020/04/25 11:13 編集
2020/04/25 11:17
2020/04/25 11:20
2020/04/25 11:31
2020/04/25 11:52