如何读取在同一个程序 C++ 中创建的文件?
How can I read a file that I created in the same program, C++?
我做了一个程序,它以十进制、十六进制和八进制形式创建一个数字文件:
int main()
{
int i;
cout << "Enter number" << endl;
cin >> i;
system("pause");
CreateFile(i);
ShowFile();
return 0;
}
void CreateFile(int i)
{
ofstream file("file.txt", ios::app);
file << "--------------------------------\n";
file << "Number in decimal is:" << i << "\n";
file << hex << setiosflags(ios::uppercase);
file << "Number in hex is:: " << i << "\n";
file << dec << resetiosflags(ios::showbase);
file << oct << setiosflags(ios::uppercase);
file << "Number in octal is: " << i << "\n";
file.close();
}
但是我不知道如何在控制台中读取它:
void showFile()
{
int open;
ifstream file("file.txt", ios::in);
while (!file.eof() == false) {
file >> open;
cout << "The number is " << open << endl;
}
}
如何打开它?
您完全按照您打开的方式打开它。
您的问题不是打开文件,而是读取文件。你打开文件就好了。您只是无法正确阅读它,您的问题是其他问题。你实际上有两个问题:
1) 你不是 checking for the end-of-file condition correctly.
2) 您在文件中写入了几行文本。但是以某种方式读取文件的代码莫名其妙地期望文件只包含数字,而不是您写入其中的整个文本。
实际上还有第三个问题:错误的代码缩进。了解如何正确缩进代码可以提高可读性,并且通常有助于发现错误。
我做了一个程序,它以十进制、十六进制和八进制形式创建一个数字文件:
int main()
{
int i;
cout << "Enter number" << endl;
cin >> i;
system("pause");
CreateFile(i);
ShowFile();
return 0;
}
void CreateFile(int i)
{
ofstream file("file.txt", ios::app);
file << "--------------------------------\n";
file << "Number in decimal is:" << i << "\n";
file << hex << setiosflags(ios::uppercase);
file << "Number in hex is:: " << i << "\n";
file << dec << resetiosflags(ios::showbase);
file << oct << setiosflags(ios::uppercase);
file << "Number in octal is: " << i << "\n";
file.close();
}
但是我不知道如何在控制台中读取它:
void showFile()
{
int open;
ifstream file("file.txt", ios::in);
while (!file.eof() == false) {
file >> open;
cout << "The number is " << open << endl;
}
}
如何打开它?
您完全按照您打开的方式打开它。
您的问题不是打开文件,而是读取文件。你打开文件就好了。您只是无法正确阅读它,您的问题是其他问题。你实际上有两个问题:
1) 你不是 checking for the end-of-file condition correctly.
2) 您在文件中写入了几行文本。但是以某种方式读取文件的代码莫名其妙地期望文件只包含数字,而不是您写入其中的整个文本。
实际上还有第三个问题:错误的代码缩进。了解如何正确缩进代码可以提高可读性,并且通常有助于发现错误。