【问题标题】:File Handling in C programmingC 编程中的文件处理
【发布时间】:2023-04-07 04:55:01
【问题描述】:

我正在尝试学习 C。:) 但是我遇到了这个我不明白的错误。有人可以向我解释一下吗。我无法理解导致此问题的原因。

#include<stdio.h>
#include<conio.h>

main()
{
    FILE *fp, *ft;
    char ch;
    fp=fopen("D:\Documents\sample.txt","w");
    if (fp ==NULL) 
    {
        puts("cannot open file");
        exit();
    }

    ft=fopen("D:\Documents\sample - Copy.txt","w");
     if (ft ==NULL) 
    {
        puts("cannot open file");
        exit();
    }

    while(1)
    {
        ch=fgetc(fp);
        if (ch== EOF)
            break;
        else
            fputc(ch,ft);
    }
    fclose(fp);
    fclose(ft);
}

我收到的错误消息:-

C:\Users\LoneRanger\Desktop\FileHandling.c: In function 'main':
C:\Users\LoneRanger\Desktop\FileHandling.c:8:11: warning: unknown escape sequenc
e: '\D' [enabled by default]
  fp=fopen("D:\Documents\sample.txt","w");
           ^
C:\Users\LoneRanger\Desktop\FileHandling.c:8:11: warning: unknown escape sequenc
e: '\s' [enabled by default]
C:\Users\LoneRanger\Desktop\FileHandling.c:12:6: warning: incompatible implicit
declaration of built-in function 'exit' [enabled by default]
      exit();
      ^
C:\Users\LoneRanger\Desktop\FileHandling.c:12:6: error: too few arguments to fun
ction 'exit'
C:\Users\LoneRanger\Desktop\FileHandling.c:15:11: warning: unknown escape sequen
ce: '\D' [enabled by default]
  ft=fopen("D:\Documents\sample - Copy.txt","w");
           ^
C:\Users\LoneRanger\Desktop\FileHandling.c:15:11: warning: unknown escape sequen
ce: '\s' [enabled by default]
C:\Users\LoneRanger\Desktop\FileHandling.c:19:6: warning: incompatible implicit
declaration of built-in function 'exit' [enabled by default]
      exit();
      ^
C:\Users\LoneRanger\Desktop\FileHandling.c:19:6: error: too few arguments to fun
ction 'exit'

C:\Users\LoneRanger\Desktop>gcc C:\Users\LoneRanger\Desktop\FileHandling.c -o Fi
leHandling
C:\Users\LoneRanger\Desktop\FileHandling.c: In function 'main':
C:\Users\LoneRanger\Desktop\FileHandling.c:8:11: warning: unknown escape sequenc
e: '\D' [enabled by default]
  fp=fopen("D:/\Documents/\sample.txt","w");
           ^
C:\Users\LoneRanger\Desktop\FileHandling.c:8:11: warning: unknown escape sequenc
e: '\s' [enabled by default]
C:\Users\LoneRanger\Desktop\FileHandling.c:12:6: warning: incompatible implicit
declaration of built-in function 'exit' [enabled by default]
      exit();
      ^
C:\Users\LoneRanger\Desktop\FileHandling.c:12:6: error: too few arguments to fun
ction 'exit'
C:\Users\LoneRanger\Desktop\FileHandling.c:15:11: warning: unknown escape sequen
ce: '\D' [enabled by default]
  ft=fopen("D:/\Documents/\sample - Copy.txt","w");
           ^
C:\Users\LoneRanger\Desktop\FileHandling.c:15:11: warning: unknown escape sequen
ce: '\s' [enabled by default]
C:\Users\LoneRanger\Desktop\FileHandling.c:19:6: warning: incompatible implicit
declaration of built-in function 'exit' [enabled by default]
      exit();
      ^
C:\Users\LoneRanger\Desktop\FileHandling.c:19:6: error: too few arguments to fun
ction 'exit'

【问题讨论】:

  • C 不是 C++ 或 Objective-C。
  • 它说“错误:函数'exit'的参数太少”。例如,将 exit() 更改为 exit(1)。
  • 谢谢大家,效果很好。

标签: c windows gcc


【解决方案1】:

\ 是 C 中的转义符号,您应该在字符串中使用\\,例如:

fp=fopen("D:\\Documents\\sample.txt","w");

【讨论】:

    【解决方案2】:

    exit() 位于stdlib.h 中,并且您没有包含此标头,因此出现错误。

    这里returnexit 更好

    【讨论】:

      【解决方案3】:

      在 C、C++、C# 和许多其他语言中,您可以制作带有特殊字符的字符串,例如添加新行 ('\n')、制表符 ('\t') 等等。

      约定是“转义”它们,即使用反斜杠\ 和一个或多个字符来表示您想要的字符。这意味着\ 在字符串中是特殊的,您需要小心使用它。

      在您的情况下,当您想使用真正的\ 来分隔目录时,您需要将其转义为\\

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多