我知道这个问题之前已经被问过一百万次了,但是大多数问题都比我需要的复杂。我已经知道哪些行会有哪些数据,所以我只想将每一行加载为自己的变量。
例如,在“settings.txt”中:
800
600
32
然后,在代码中,第 1 行设置为 int winwidth,第 2 行设置为 int winheight,第 3 行设置为 int wincolor。
抱歉,我对 I/O 很陌生。
我知道这个问题之前已经被问过一百万次了,但是大多数问题都比我需要的复杂。我已经知道哪些行会有哪些数据,所以我只想将每一行加载为自己的变量。
例如,在“settings.txt”中:
800
600
32
然后,在代码中,第 1 行设置为 int winwidth,第 2 行设置为 int winheight,第 3 行设置为 int wincolor。
抱歉,我对 I/O 很陌生。
您可以做的最简单的事情可能是:
std::ifstream settings("settings.txt");
int winwidth;
int winheight;
int wincolor;
settings >> winwidth;
settings >> winheight;
settings >> wincolor;
但是,这并不能确保每个变量都在新行上,并且不包含任何错误处理。
#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 比这要多得多,但根据要求,这使它保持简单。