我在下面放置我的程序。我試圖通過以下兩種方式給予不同的格式相同的文件名來打印屏幕上的文本文件的內容 -在C中使用fopen()指定文件的名稱時,/,//,,\的意義是什麼?
1.使用一個文件的硬編碼名稱
2.taking的通過用戶名的文件(用戶輸入地址)
#include <stdio.h>
#include <conio.h>
#include <string.h>
void main()
{
FILE *fp;
char ch;
// char str[30] = "d:\CPRog//triAl.tXT";
// char str[30] = "d:\Cprog//triAl.txt";
// char str[30] = "d:\CPRog\\triAl.tXT";
// char str[30] = "d:/\CPROG//triAl.tXT";
// char str[30] = "d:\\CPRog\\triAl.tXT";
// char str[30] = "d:/CPRog//triAl.tXT";
// char str[30] = "d:\CPRog/triAl.tXT";
// char str[30] = "d:/CPRog/triAl.tXT";
// char str[30] = "d:\CPRog/triAl.tXT";
char str[30] = "D:\Cprog\trial.txt";
clrscr();
// printf("\nEnter path of file to open : ");
// gets(str);
fp = fopen(str,"rt");
if(fp == NULL)
{
printf("\nError in opening file !");
getch();
exit();
}
while(!feof(fp))
{
ch = fgetc(fp);
fputc(ch,stdout); // Print the character on screen.
}
fclose(fp);
getch();
}
在硬編碼地址的情況下,該程序被打印文本文件的內容爲所有評論formats.It是示出消息
錯誤開口檔案!
當前硬編碼地址。
在用戶輸入的地址的情況下,我試圖爲這些 -
d:\ cprog \爲trial.txt:文件內容被打印。
D:\ cprog \\ trial.txt:打印文件內容。
D:/cprog//trial.txt:打印文件內容。
D:/ cprog/\ trial.txt:打印文件內容。
D:/cprog/trial.txt:打印文件內容。
d:\\ cprog \\爲trial.txt:無輸出
d://cprog//trial.txt:無輸出
d:\\ cprog \爲trial.txt :沒有輸出
d://cprog/trial.txt:無輸出
爲什麼有在指定地址爲硬編碼和用戶輸入方法的格式不同? 也爲什麼有些格式顯示輸出,有些不在這兩種方法?在指定地址時,/,\,//,\,/ \有什麼意義?
你的一半示例不能編譯。啓用警告以查明原因。 – usr2564301
1和6是不同的結果相同的路徑......那怎麼樣? – dragosht
它是'int main',而不是'void main'。 while(!feof())'一如既往是一個bug,它會循環一次額外的迭代。閱讀comp.lang.c常見問題以瞭解原因。 – Jens