【问题标题】:open and write text in c在c中打开和写入文本
【发布时间】:2017-04-09 00:28:58
【问题描述】:

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

我的第一次接触是这个,但我不知道如何将指针设为*数字(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;
} 

提前致谢。

【问题讨论】:

  • 除了“请帮我完成家庭作业”之外,您还有其他问题吗?
  • 欢迎来到 Stack Overflow!请edit您的问题显示what you have tried so far。您应该包含您遇到问题的代码的minimal reproducible example,然后我们可以尝试帮助解决具体问题。您还应该阅读How to Ask
  • 那么是什么阻止你开始编码?
  • @user7206161 请更新您的问题,不要在评论中发布大量代码。
  • 对不起,我是新人,我现在会更新它

标签: c arrays io


【解决方案1】:

有很多问题:


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


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


这是错误的:

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

如果cEOF,那么你不应该调用putcar


你检查(file == NULL),但你不应该打电话给fclose。仅当fopen 成功时才调用fclose

【讨论】:

    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多