我想学习如何在C中使用getc
函数,所以我编写了一个小程序,它应该将文本文件的第一个字母作为输出。
这是它的外观:
int main()
{
int character;
FILE *file;
file = fopen("file.txt", "r");
if(file == NULL)
printf("can't open\n");
character = getc(file);
printf("%c", character);
fclose(file);
return 0;
}
无法打开file.txt
文件,我无法弄清楚原因。 file.txt
与我的程序的.exe文件位于同一文件夹中。我使用的是Windows Vista。
提前致谢
答案 0 :(得分:1)
这会从argv[0]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MYFILE "plik.txt"
int main(int argc, char *argv[]) {
char fname[_MAX_PATH+1];
int znak;
FILE *plik;
char *ptr;
strcpy(fname, argv[0]);
ptr = strrchr(fname, '\\');
if(ptr == NULL) {
strcpy(fname, MYFILE);
}
else {
strcpy(ptr+1, MYFILE);
}
plik = fopen(fname, "r");
if(plik == NULL) {
printf("Can't open %s\n", fname);
}
else {
znak = getc(plik);
printf("First char of %s is %c\n", fname, znak);
fclose(plik);
}
getchar();
return 0;
}
答案 1 :(得分:1)
尝试
if (plik == NULL) { perror("plik.txt"); exit(EXIT_FAILURE); }
以便更好地了解错误原因。