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,因此出现错误。
这里 return
比 exit
更好
在 C、C++、C# 和许多其他语言中,您可以创建带有特殊字符的字符串,例如添加新行 ('\n'
)、制表符 ('\t'
)和许多其他人。
惯例是'escape'他们,即用一个反斜杠\
和一个或多个字符来表示你想要的字符。这意味着 \
在字符串中是特殊的,您需要小心使用它。
在你的情况下,当你想使用真正的 \
来分隔目录时,你需要将其转义为 \
我正在努力学习 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,因此出现错误。
这里 return
比 exit
更好
在 C、C++、C# 和许多其他语言中,您可以创建带有特殊字符的字符串,例如添加新行 ('\n'
)、制表符 ('\t'
)和许多其他人。
惯例是'escape'他们,即用一个反斜杠\
和一个或多个字符来表示你想要的字符。这意味着 \
在字符串中是特殊的,您需要小心使用它。
在你的情况下,当你想使用真正的 \
来分隔目录时,你需要将其转义为 \