使用getchar()和putchar()输入和输出带有数组的字符集

我是C编程语言领域的新手,对函数putchar()和getchar()不太熟悉。我尝试编写代码以读取一组输入的字符并将其存储在数组中。 这是我的代码:

== No Recombination ==
Line: 0 - [S1_577905,S1_1066894,S1_1293038,S1_1491834,S1_1564133]
Line: 1 - [S1_577905,S1_1491834]
Line: 2 - [S1_1491834,S1_1564133]
Line: 3 - [S1_577905,S1_1564133]
Line: 4 - [S1_577905,S1_1491834]
Line: 5 - [S1_577905,S1_1564133]
Line: 6 - [S1_1293038,S1_1564133]
== Recombination ==
Line: 0 - [ID]
Line: 1 - [ID,S1_1564133]
Line: 2 - [ID,S1_577905,S1_1293038]
Line: 3 - [ID]
Line: 4 - [ID,S1_1564133]
Line: 5 - [ID,S1_1066894]
Line: 6 - [ID,S1_1066894]

程序运行成功,但运行不正常。输出的结果是混乱的,完全没有意义。 我不知道我的代码有什么问题,因为它对我来说似乎没有错误(编译器也认为是正确的)。我希望除了获得正确的书写方式之外,我还能得到一个解释。

kingxuyao 回答:使用getchar()和putchar()输入和输出带有数组的字符集

请使用以下内容

int value;

for ( i = 0; i < MAX_SIZE && ( value = getchar() ) != EOF && value != '\n'; i++ )
{
    c[i] = value;
}

for ( int j = 0; j < i; j++ )
{
    putchar( c[j] );
}

putchar( '\n' );

否则至少在此循环中

for(i=0;getchar()!='\n';i++){
        ^^^^^^^^   

您要跳过每个偶数字符

并且可以删除标头<ctype.h>,因为程序中都没有使用标头中的声明。

本文链接:https://www.f2er.com/3153566.html

大家都在问