putc跳过一个索引putchar不?

时间:2013-11-22 08:46:36

标签: c

我有一个读取输入并将ascii字符打印到文件流的方法。

最初它不需要打印到文件所以我使用putchar并且它工作正常 但是现在我使用putc或fputc它会打印所有其他输入。
示例:

输入=测试
输出= t s

    int readFile(char* input,FILE* inputFile)
{
    int anyChanges = 1;
    int iochar = 0;
    int i = 0;

    //credit Foster Chapter 2
    while (( iochar = getc(inputFile) ) != EOF )
    {
        //Returns 1 if no changes made, return 0 if any changes have been made.
        // printf("\t character --> %c",iochar);
        //printf("\nGot to first while loop\n");

        if(iochar != '\n')
        {
            // printf("Got to second loop\n");
            int printedColumns =0;
            input[i] = iochar;
            printf("input array ---> %c\n",input[i]);
            i++;
            printf("i:%d\n",i);
            printf("iochar:%d\n",iochar);
            //This if statement checks for normal ascii characters.
            //If the output is less than 72 it prints it and increments printedColumns.
            if (( ' ' <= iochar ) && ( iochar <= 126 ) )
            {
                fputc(input[i],inputFile);
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

你的意思是fputc iochar而不是input [i](因为你已经增加了i)?

http://www.cplusplus.com/reference/cstdio/fputc/表示位置指示器已递增。

答案 1 :(得分:0)

这里有getc&amp; putc你使用相同的Stream pointr即inputFile,你想读写同一个文件??