从用户输入中插入多个值到文本文件

  • 本文关键字:文本 文件 插入 用户 c++
  • 更新时间 :
  • 英文 :


我有这个项目,我需要在文本文件中插入多个整数通过在循环

中获取用户输入的特定范围的输入
void append_text_multiple() {
std::string file_name;
std::cin >> file_name;

std::ofstream getfile;
getfile.open(("C:\users\USER\Documents\located_file\" + file_name+ ".txt").c_str());

std::string verify_dtype;
std::cin >> verify_dtype;

if(verify_dtype == "int" || "INT") {    
int total_line;
int item_append;
std::cin >> total_line;
for(int j=0; j<=total_line; j++) {
std::cin >> item_append;
getfile << item_append << 'n';
getfile.close();
}
}
}

现在,当我插入1 2 3 4 5作为我的输入,而在循环中,该文本文件的输出只返回一个值,即1,而我期望为123.45. 我不知道发生了什么事?

您的代码中有几个问题:

  1. 你的for循环做total_line+1迭代,而不是total_line。循环应该是for(int j=0; j<total_line; j++)(<而不是<=)。
  2. 在写入第一个值后立即关闭输出文件。因此,不会执行后面的写操作。你应该在写完所有值后关闭它。
  3. 您检查verify_dtype值的条件是错误的,假设您想检查变量是否具有2个值中的任意一个。

固定版本:

#include <iostream>
#include <fstream>
void append_text_multiple() {
std::string file_name;
std::cin >> file_name;
std::ofstream getfile;
getfile.open(("C:\users\USER\Documents\located_file\" + file_name + ".txt").c_str());
std::string verify_dtype;
std::cin >> verify_dtype;

if ((verify_dtype == "int") || (verify_dtype == "INT")) {
int total_line;
int item_append;
std::cin >> total_line;
for (int j = 0; j < total_line; j++) {
std::cin >> item_append;
getfile << item_append << "n";
}
getfile.close();
}
}
int main() {
append_text_multiple();
}

最新更新