这是我想要做的逻辑;
- 在名为ch的变量中使用fgetc()获取输入字符,
- 检查不是ch是EOF还是等于'\n',
- 增加名为counter的int 变量,
- 然后使用ungetc()将变量ch放入标准输入
- 重复过程
之后,使用counter分配内存。再次,使用fgetc()获取stdin中的 char并将其存储到数组中。
这个想法只适用于一个字符输入。这是我为两个或多个输入编写的代码;
while ( ((entry = fgetc(stdin)) != EOF) && (entry != '\n'))
{
++counter;
ungetc(entry, stdin);
fprintf(stdout, "%c,%d ", entry, counter); //
} //;
这是我输入qwert作为输入时控制台的输出;
q,2 q,3 q,4 q,5 q,6 q,7 q,8 q,9 q,10 q,11 q,12 q,13 q,14 q,15 q,16 q,17 q,18 q,19 q,20 q,21 q,22 q,23 q,24 q,25 q,26 q,27 q,28 q,29 q,30 q,31 q,32 q,33 q,34 q,35 q,36 q,37 q,38 q,39 q,40 q,41 q,42
读取第一个字符后,它会继续读取第一个字符,永远不会得到第二个或其他字符。
操作系统:Windows 10 | MinGW gcc-9.1.0
我究竟做错了什么?甚至可能吗?