2012-04-04 78 views
0

我正在尝试解决项目euler的问题13,它涉及100个50位数字的总和。我认为这会比将整块数字粘贴到我的代码中更好。所以我搜索了四周,发现你可以将块粘贴到一个.txt文件并从那里读取。从.txt读取

那么,我将如何去阅读从C++中的.txt文件,更重要的是从中分别获取50位数字的字符串?

+0

你知道['std :: ifstream'](http://en.cppreference.com/w/cpp/io/basic_ifstream)? – 2012-04-04 09:58:20

回答

2

是这样的吗?

// reading a text file 
#include <iostream> 
#include <fstream> 
#include <string> 
using namespace std; 

int main() { 
    string line; 
    ifstream myfile ("numbers.txt"); 
    if (myfile.is_open()) 
    { 
    while (myfile.good()) 
    { 
     getline (myfile,line); 
     int i = atoi(line.c_str()); 
     // do here something with 'i' 
     cout << i 
    } 
    myfile.close(); 
    } 

    else cout << "Unable to open file"; 

    return 0; 
} 
+1

啊,当然你不能将50位数字转换为int,但我想这是另一个问题:) – 2012-04-04 10:03:26

+2

我会跳过对'is_open'的检查并使用while(getline(...) )'而不是。 – 2012-04-04 10:05:30

+0

@Khôi我如何从.txt获得第一行或第二行? – cortex 2012-04-04 10:16:35