gpt4 book ai didi

c - 目录中的通用用户?

转载 作者:行者123 更新时间:2023-11-30 16:20:25 25 4
gpt4 key购买 nike

我想将一些文本写入文本文件,但我需要目录中的通用用户。例如。 C:/Users/USER/Desktop/test.txt

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#include<string.h>
#include<windows.h>
#include<signal.h>
void main() {
int i,l;
FILE *fp;
char text[255];
char verz[255];
char username[128];
DWORD usernamelen;
if(!GetUserName(username, &usernamelen)) {
printf("Error %d occured\n", (int)GetLastError());
}
strcat(verz,"C:/Users/");
strcat(verz,username);
strcat(verz,"/Destktop/test.txt");
printf("Dein Text: ");
fgets(text, 255, stdin);
fp = fopen(verz, "w");
fprintf(fp, "%s",text);
}

我希望桌面上有一个新文件,其中包含一些文本。

最佳答案

当您编写路径名时,您正在执行的操作

strcat(verz,"C:/Users/");
strcat(verz,username);
strcat(verz,"/Destktop/test.txt");

问题是 verz 未初始化,因此第一个 strcat 调用未定义行为,因为字符串不是空/nul 终止的.

结果可能会有所不同,在您的情况下,文件名无效并且没有创建文件,但您不知道这一点,因为您没有测试 fopen 的返回值:

fp = fopen(verz, "w");
fprintf(fp, "%s",text);

快速修复是:

strcpy(verz,"C:/Users/");

sprintf一行,更快更清晰:

sprintf(verz,"C:/Users/%s/Desktop/test.txt",username);
fp = fopen(verz, "w");
if (fp!=NULL)
{
fprintf(fp, "%s",text);
fclose(fp); // better close the file
}

关于c - 目录中的通用用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55307350/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com