我需要一个可以让我存储在不同文件中的多个accout的程序。这是我到目前为止所做的,但出于某种原因(“test”+ userName +“。txt”,“a”);不起作用。谢谢你的时间!
int main() {
char choice[10];
printf("create accout (1)");
printf("\nlogin to accout (2)\n");
scanf("%s", &choice);
getchar();
if (strcmp(choice, "1") == 0)
{
char userName[1000];
FILE *myFile;
myFile = fopen("test" + userName + ".txt", "a");
if (myFile == NULL)
{
printf("file does not exist");
}
else
{
printf("Enter your username: ");
gets(userName);
fprintf(myFile, "%s", userName);
fclose(myFile);
}
}
答案 0 :(得分:0)
在C中,"字符串" (char *
),实际上只是指向由库函数作为字符串的char
,解释的零终止数组的第一个元素。
您不能简单地将此类指针与+
连接起来,就像在其他一些具有显式字符串类型的语言中一样。
要组装字符串,您必须使用类似strcat()
的内容到适当大小的缓冲区:
char buffer[MAX_PATH];
...
strcpy(buffer, "test");
strcat(buffer, userName);
strcat(buffer, ".txt");
myFile = fopen(buffer, "a");
或者,您可以使用sprintf()
:
int res = sprintf(buffer, "test%s.txt", userName);
if (res > 0)
{
myFile = fopen(buffer, "a");
等...