gpt4 book ai didi

c++ - 使用 'ofstream' 代码错误写入文本文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:58:07 25 4
gpt4 key购买 nike

<分区>

在 C++ 中,我目前正在学习如何使用 ofstream 写入文件(假设是 txt 文件),我决定编写自己的小代码并亲自尝试。我对我的代码有疑问,因为它没有按我预期的方式运行。

#include <iostream>
#include <fstream>
using namespace std;

int main() {
char opt;
cout<<"Would you like to write to a new/existing file? [Y/N]\n";
cin>>opt;

if(opt=='Y'||opt=='y') {
ofstream file;
char filename[50];
char statement[55];
cout << "Please enter the name of the file you wish to open:\n";
cin.getline(filename, 50);
file.open(filename);
cout << "Please enter the text you wish to be written on the file:\n";
cin.getline(statement, 55);
file << statement;
file.close();
}
else {
return 1;
}
return 0;
}

在代码中,我询问用户是否要写入文件。如果他们输入 Y,它将进入“if 语句”并执行代码,但如果他们输入 N(或其他任何内容),它将无法运行。我的问题是,每当我选择说“Y”并尝试写入文件时,它都不会让我“输入”文件名 cout<<"Please enter the name of the file you wish to open:\n"; .它立即要求输入要写入文件的文本。只有当我使用 if 语句并询问用户是否要写入文件时才会发生此错误。如果我删除“if 语句”并将代码放在“if 语句”中并将其写入 main 本身而不让用户选择输入 Y 或 N,则代码可以正常工作。所以我知道这不是 if 语句中的代码错误,它与我理解这段代码应该如何工作的概念有关!请原谅我的愚蠢,因为我缺少一些明显的东西,但我似乎找不到原因。

解决方案:对于遇到同样问题的任何人,您所要做的就是cin.ignore();cin.getline(); 之后.

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com