2012-08-31 54 views
0

我知道這個問題已經被問過一百萬次,但大多數問題比我需要的更復雜。我已經知道哪些行會有什麼數據,所以我只想將每行加載爲自己的變量。從C++中的文本文件加載變量

例如,在 「SETTINGS.TXT」:

800 
600 
32 

然後,在代碼,行1被設定爲int winwidth,線2被設置爲int winheight和行3被設置爲int wincolor。

對不起,我很新的I/O。

回答

2

也許你可以做最簡單的事情是這樣的:

std::ifstream settings("settings.txt"); 
int winwidth; 
int winheight; 
int wincolor; 

settings >> winwidth; 
settings >> winheight; 
settings >> wincolor; 

然而,這並不能保證每一個變量是在新的一行,並且不包含任何錯誤處理。

+0

我沒有最終使用你的代碼,但我確實得到它的工作。不過謝謝你的回覆,邁克爾。 – user1637573

+1

@ user1637573:如果您的問題已解決,則應將其標記爲已解決。否則,這太浪費時間了。 –

0
#include <iostream> 
#include <fstream> 
#include <string> 

using std::cout; 
using std::ifstream; 
using std::string; 

int main() 
{ 
    int winwidth,winheight,wincolor;  // Declare your variables 
    winwidth = winheight = wincolor = 0; // Set them all to 0 

    string path = "filename.txt";   // Storing your filename in a string 
    ifstream fin;       // Declaring an input stream object 

    fin.open(path);      // Open the file 
    if(fin.is_open())      // If it opened successfully 
    { 
     fin >> winwidth >> winheight >> wincolor; // Read the values and 
          // store them in these variables 
     fin.close();     // Close the file 
    } 

    cout << winwidth << '\n'; 
    cout << winheight << '\n'; 
    cout << wincolor << '\n'; 


    return 0; 
} 

ifstream可以與提取操作符>>一起使用,就像使用cin一樣。顯然還有很多文件I/O比這個更多,但是按照要求,這可以讓它簡單。