我有这个代码,但它不工作。无论我输入什么,它都不打印。
#include <stdio.h>
#include <stdlib.h>
char *askFile()
{
printf("Enter a file: ");
char *file = malloc(512 * sizeof(char));
scanf("%s", file);
return file;
}
int main()
{
char *file = askFile();
printf("%s", *file);
return 0;
}
为什么不工作?
正如@Someprogrammerdude在评论中所说的,错误是:
printf("%s", *file);
应该是:
printf("%s", file);
由于*file指向第一个元素。
关键的错误是没有使用一个启用所有警告的好的编译器。一个良好的编译器应该对指定符类型不匹配发出警告。
char *file =...;
printf("%s", *file); // Warning expected.
节省时间。启用所有编译器警告。