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

标签 c

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

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

意思是,实际的用户名,例如John.txt或Amy.txt或bob.txt。

现在,我已经预定义了

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

这 100% 有效,但自然地,每次为不同的人运行测验并记录到文件中时,我都无法正确识别文件。

我看到了有关 sprintf、snprintf、ofstream、istream 等的建议。

对我来说,所有这些都是新概念,不知道如何继续前进......任何帮助将不胜感激。

如果有人想要或关心看到我的程序,这非常好,我很乐意分享,但不打算在寻求帮助期间给任何人增加阅读我的整个程序的负担。 :)

最佳答案

您没有为我希望的所有用户使用“username.txt”。您如何处理用户开始测验时输入的姓名?

您的代码中可能需要类似的内容,请参阅 sprintf 的文档

#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查看您需要哪些打开标志来满足您的要求

关于c - 如何在C中创建以用户名作为文件名的.txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16865292/

相关文章:

C编程如何更改套接字连接到的端口

c - 我在哪里可以找到在我的 C 程序的 .data 部分中创建静态变量的程序集?

c - 如何在gtk上的按钮信号中添加计时器?

c - 如何在 C 中计算 2⁶⁴/n?

c++ - C Char 数组创建差异

c - strcasecmp 或 tolower/toupper + strcmp 哪个更好?

c - 如何正确地从右向链表添加节点

c90、POSIX 和clock_gettime

java - 编程中的动态链接器是什么?

C文件处理记录搜索: last record displayed twice