这里是input.txt
5
A B C D E
我想得到这些字符,所以我使用了这个代码:
//...
int n;
fscanf(fp_i, "%d", &n);
//...
char data;
for (int i = 0; i < n; i++) {
fscanf(fp_i, "%c", &data);
array_c[i] = data;
}
//...
array_c
中还有空格,所以我尝试了" %c "
,它成功了!
我想学习另一种用空格获取字符的方法。还有更复杂的方法吗?
这样做很好,唯一的改进是我建议它直接读取数组,而不是中间变量data
。
for (int i = 0; i < n; i++) {
fscanf(fp_i, " %c ", &array_c[i]);
}
请注意,要将array_c
视为字符串,它应该有6个元素,第6个元素是null终止符。
你会有:
//...
int n;
fscanf(fp_i, "%d", &n);
char array_c[n + 1];
//...
for (int i = 0; i < n ; i++) {
fscanf(fp_i, " %c", &array_c[i]);
}
array_c[n] = ' ';
//...
运行样本
只要在%c
前面增加一个空间就可以了。
int n;
fscanf(fp_i, "%d", &n);
char data;
for (int i = 0; i < n; i++) {
fscanf(fp_i, " %c", &data); // space front of %c
array_c[i] = data;
}