首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在C中创建以用户名为文件名的.txt?

如何在C中创建以用户名为文件名的.txt?
EN

Stack Overflow用户
提问于 2013-05-31 20:17:06
回答 3查看 4.1K关注 0票数 0

我已经成功地创建了一个小测验程序,它首先要求用户输入他们的名字。

测试结束后,首先将分数打印到屏幕上,然后将其打印到username.txt文件中。

也就是说,实际的用户名称类似于John.txt、Amy.txt或bob.txt。

现在,我已经预定义了

report_file = fopen ("username.txt","w");

这是100%的工作,但自然,我没有正确地识别文件,每次测试是为不同的人运行,并记录在文件中。

我见过关于sprintf、snprintf、ofstream、istream等的建议。

对我来说,所有这些都是新概念,不知道如何移动forward...any帮助将不胜感激。

如果有人想或关心看我的节目,这是安静,很好,我很乐意分享,但不打算负担任何人阅读我的整个程序,在此请求帮助。:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-31 20:30:56

我希望您不是对所有的用户都使用"username.txt"。当用户开始测试时,你会怎么处理用户输入的名字呢?

在您的代码中可能需要类似的内容,请参阅斯普林特的文档

代码语言:javascript
运行
复制
#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,以了解您的需求需要哪些打开标志。

票数 0
EN

Stack Overflow用户

发布于 2013-05-31 20:28:13

我见过关于sprintf、snprintf、ofstream、istream等的建议。

那么为什么不使用它们呢?

代码语言:javascript
运行
复制
char buffer [256];
sprintf(buffer, "%s.txt", username);
report_file = fopen (buffer,"w");

用户名显然是一个以零结尾的字符串,它包含用户名。

编辑:获得更多信息,您可以访问http://www.cplusplus.com/reference/cstdio/sprintf/

票数 0
EN

Stack Overflow用户

发布于 2013-05-31 20:30:06

如果您有他们的用户名,只需将其保存到char数组中,然后使用O_CREAT set调用open。如果没有创建该文件,这将创建该文件,而且由于您拥有它们的用户名,因此它将创建一个具有其用户名的文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16865292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档