【发布时间】:2023-03-22 03:16:02
【问题描述】:
我是一名学生,我必须创建一个程序并告知该程序的使用,所以如果文件不存在,我必须创建它;如果存在,则读取并保存变量,如果满足特定条件则必须增加其值,最后程序必须用新值重写文件,保存并关闭它。我做了一个代码,但效果不好,我不知道错误在哪里。请帮帮我。
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int varAux1,varAux2,varAux3,varAux4;
int a;
int var1,var2,var3,var4;
ifstream archivoLectura;
archivoLectura.open("informeuso.txt");
if (archivoLectura.fail())
{
ofstream archivoLectura;
archivoLectura.open("informeuso.txt");
archivoLectura<<"linea 1: "<<0<<"\n";
archivoLectura<<"linea 2: "<<0<<"\n";
archivoLectura<<"linea 3: "<<0<<"\n";
archivoLectura<<"linea 4: "<<0<<"\n";
archivoLectura.close();
archivoLectura.open("informeuso.txt");
}
archivoLectura>>var1;
archivoLectura>>var2;
archivoLectura>>var3;
archivoLectura>>var4;
varAux1 = var1;
varAux2 = var2;
varAux3 = var3;
varAux4 = var4;
archivoLectura.close();
cout<<"hola"<<endl;
cout<<"programa prueba"<<endl;
cout<<"enter value from 0 to 9"<<endl;
cout<<"a: ";
cin >> a;
if (a>0 && a <3)
{
var1 = varAux1 + 1;
}
else if(a>2 && a <6)
{
var2 = varAux2 + 1;
}
else if (a>5 && a<8)
{
var3 = varAux3 +1;
}
else
{
var4 = varAux4 + 1;
}
ofstream archivoEscritura;
archivoEscritura.open("informeuso.txt");
archivoEscritura<<"line 1-2: "<<var1<<"\n";
archivoEscritura<<"line 3-5: "<<var2<<"\n";
archivoEscritura<<"line 6-7: "<<var3<<"\n";
archivoEscritura<<"line other: "<<var4<<"\n";
archivoEscritura.close();
system("pause");
return 0;
}
【问题讨论】:
-
告诉我们为什么它不起作用
-
“但效果不好” 这不是一个非常详细、准确的描述。你能提供任何信息吗??
-
@ChrisWard1000:我认为 OP 希望 我们 可以告诉 他们 为什么它不起作用。但是,如果 OP 告诉我们 如何 它不起作用,那将会很有帮助。
-
我说它不起作用,因为它显示:第 1-2 行:2293512 第 3-5 行:2293456 第 6-7 行:4287201 其他行:0
-
@Lightness Races in Orbit 你是绝对正确的。我在评论中付出的努力与 OP 对他的问题所做的一样多。
标签: c++ rewrite fstream ifstream ofstream