wchar_t和char不兼容的问题

0

用wchar_t获取一个字符串之后,想要用获得的字符串打开一个文件,但是类型不匹配,在fopen处应该怎么办?要用wchar_t和char转换吗?但好像用的函数都是在windows系统下的吧?有没有较为方便的解决办法。谢谢大佬啦~

#include <stdio.h>
#include<string.h>
#include<malloc.h>
#include <graphics.h>	
#include <conio.h>
#include <easyx.h>

int main()
{
	 wchar_t s[20];
	 InputBox(s, 20, L"请输入创建的文本名文本名(不超过20个字符)");
     char buffer;
     FILE *fp;
	 while((buffer = getchar()) != '\n' && buffer != EOF); //清除缓存区
	 while ((fp = fopen(s, "w+")) == NULL)//这里有问题
	 {
	   printf("文件创建失败,请重新输入:");
	   scanf("%s",file);
	   while((buffer = getchar()) != '\n' && buffer != EOF);
	 }
	 printf("文本创建成功");
}
ava
Curiosity*

2021-12-26

0

使用 _tfopen_s 代替 fopen,字符串使用 _T("...") 代替,scanf 使用 _tscanf_s 代替。

ava
xiongfj ◑◑

2021-12-26

谢谢大佬~不过好像还挺麻烦的,不太会用。我最后还是用inputbox了。 - Curiosity* 2021-12-27
技术讨论社区