C在字符串上使用scanf()

时间:2017-09-01 04:32:32

标签: c string pointers malloc scanf

基本上我想从文本文件中扫描“字符串”,然后将它们传递给另一个方法(做数组的东西)。 我目前使用的方法,但由于我不知道潜在输入的大小,我必须为任何大小的字符串分配一个荒谬的内存量(重复这个免费和分配过程,直到那里不再需要阅读的项目) 对我已经拥有的东西有更有说服力的解决方案吗?

int main(void) {
char *item;
item = emalloc(100000 * sizeof *item);
flexarray my_flexarray = flexarray_new();

while (1 == scanf("%s",item)) {
    flexarray_append(my_flexarray, item);
    free(item);
    item = emalloc(100000 * sizeof *item);
}
free(item);

flexarray_print(my_flexarray);
flexarray_free(my_flexarray);
return EXIT_SUCCESS;
}

0 个答案:

没有答案