こんにちは、私は .dat というファイルを作成する必要があります。このファイルには、ユーザーが入力した名前を付ける必要があります。このファイルには、人の名前 (フルネームが一緒かどうかは関係ありません)、日付、体重が含まれています。ここで問題は、ファイル「name」.dat が作成されることですが、ファイル内ではユーザー名だけである必要があり、私のプログラムでは「name」.dat (ファイル名と拡張子のように) として表示されます。これが私のコードです:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
using namespace std;
struct Registro
{
int dia,mes,anio; //day,month,year
float peso; //weight
};
int main(int argc, char** argv) {
FILE* archivo;
int numero=0;
char nombre[100],c;
Registro regis;
cout<<"Nombre del paciente: ";
scanf("%s", &nombre);
getchar();
strcat(nombre,".dat");
archivo = fopen(nombre, "a+");
if(archivo)
{
cout<<"En que dia estamos?(dd): ";
scanf ("%d",®is.dia);
cout<<"En que mes estamos?: ";
scanf ("%d",®is.mes);
cout<<"En que anio estamos?(aaaa): ";
scanf ("%d",®is.anio);
cout<<"Cual es su peso?: ";
scanf ("%a",®is.peso);
fprintf(archivo,"\r\n# ");
fprintf(archivo, " Nombre: %s " " Dia: %d" " Mes: %d" " Anio: %d" " Peso: %g"
, nombre, regis.dia, regis.mes, regis.anio , regis.peso );
rewind(archivo);
do
{
c = fgetc(archivo);
if ( c == '#' )
{
numero++;
}
}while(c != EOF);
cout<<"El numero de registros es de "<<numero;
fclose(archivo);
}
else
printf("Error al crear archivo.");
return 0;
}
この部分のどこが間違っていると思います:
strcat(nombre,".dat");
archivo = fopen(nombre, "a+");
私はそれを次のように入れてみました:
archivo = fopen(nombre".dat", "a+");
と
archivo = fopen(nombre,".dat", "a+");
これらの両方なし
strcat(nombre,".dat");
ありがとうございます。