我已经成功地创建了一个小测验程序,它首先要求用户输入他们的名字。
测试结束后,首先将分数打印到屏幕上,然后将其打印到username.txt文件中。
也就是说,实际的用户名称类似于John.txt、Amy.txt或bob.txt。
现在,我已经预定义了
report_file = fopen ("username.txt","w");
这是100%的工作,但自然,我没有正确地识别文件,每次测试是为不同的人运行,并记录在文件中。
我见过关于sprintf、snprintf、ofstream、istream等的建议。
对我来说,所有这些都是新概念,不知道如何移动forward...any帮助将不胜感激。
如果有人想或关心看我的节目,这是安静,很好,我很乐意分享,但不打算负担任何人阅读我的整个程序,在此请求帮助。:)
发布于 2013-05-31 20:30:56
我希望您不是对所有的用户都使用"username.txt"。当用户开始测试时,你会怎么处理用户输入的名字呢?
在您的代码中可能需要类似的内容,请参阅斯普林特的文档
#include<stdio.h>
#include<stdlib.h>
int main(int argc, char** argv)
{
FILE* pf = NULL;
char username[250];
char userfile[255];
printf("username: ");
scanf("%s", username);
sprintf(userfile, "%s.txt", username);
pf = fopen(userfile, "w");
fprintf(pf, "%d", 100);
fclose(pf);
return 0;
} 您还可能希望查看fopen,以了解您的需求需要哪些打开标志。
发布于 2013-05-31 20:28:13
我见过关于sprintf、snprintf、ofstream、istream等的建议。
那么为什么不使用它们呢?
char buffer [256];
sprintf(buffer, "%s.txt", username);
report_file = fopen (buffer,"w");用户名显然是一个以零结尾的字符串,它包含用户名。
编辑:获得更多信息,您可以访问http://www.cplusplus.com/reference/cstdio/sprintf/
发布于 2013-05-31 20:30:06
如果您有他们的用户名,只需将其保存到char数组中,然后使用O_CREAT set调用open。如果没有创建该文件,这将创建该文件,而且由于您拥有它们的用户名,因此它将创建一个具有其用户名的文件。
https://stackoverflow.com/questions/16865292
复制相似问题