【发布时间】:2015-05-01 19:22:22
【问题描述】:
我正在尝试读取函数中的元素并将它们存储在 main 的数组中。我使用指向动态数组的指针,但它不起作用。当我尊重指针时我得到的地址是 NULL 并且程序崩溃了。
这是数组:
char* first_name = malloc(first_name_length*sizeof(char));
来自 main 的函数调用:
get_first_name(fp, first_name_length, first_name);
函数声明:
void get_first_name(FILE* fp, int length,char* first);
函数定义:
void get_first_name(FILE* fp, int length, char* first){
char c;
int i = 0;
int number_of_conversions;
number_of_conversions = fscanf(fp, "%c", &c);
while (!isspace(c)){
first[i] = c;
number_of_conversions = fscanf(fp, "%c", &c);
i++;
}
}
【问题讨论】:
-
fscanf 不会读取空格字符,即使在使用 %c 时也是如此。建议使用 int c; c = fgetc(fp);