在c

时间:2016-11-24 16:11:53

标签: c arrays io

我在c中练习,它要求获得两个参数(文件名,数字,例如k> 0)。 之后,它将创建一个新文件,将获得位置k,2 * k,3 * k等字母,并将其写入新文件。 它还将创建另一个文件来编写如上所述的行。例如第k行,第2行*等等。

我的第一次接触是这个,但我不知道将指针*作为数字(k):

#include <stdio.h>

int main()
{
    FILE * file;
    char c;
    int k;

    printf("Give a number :\n");
    scanf("%d" , k);

    file = fopen("file.txt","r");
    if (file == NULL) 
        printf("File doesn't exist\n");
    else 
    {
        do
        {
        c = getc(file);
        putchar(c);
        }
        while (c != EOF);
    }


    fclose(file);
 return 0;
} 

提前致谢。

1 个答案:

答案 0 :(得分:0)

有很多问题:

scanf("%d" , k);更改为scanf("%d" , &k);

char c;更改为int c;,因为getcputchar使用int

这是错误的:

do
{
  c = getc(file);
  putchar(c);
}
while (c != EOF);

如果cEOF,则您不应致电putcar

您检查(file == NULL),但是您不应该致电fclose。仅在fclose成功时才致电fopen