C编程中的文件处理

File Handling in C programming

我正在努力学习 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 中的转义符,你应该在你的字符串中使用 \,比如:

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

exit()stdlib.h 中,而您没有包含此 header,因此出现错误。

这里 returnexit 更好

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

惯例是'escape'他们,即用一个反斜杠\和一个或多个字符来表示你想要的字符。这意味着 \ 在字符串中是特殊的,您需要小心使用它。

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