【发布时间】:2013-02-14 12:08:37
【问题描述】:
我正在尝试做 3 件事:
- 加载 .txt 文件
- 将文件内容打印到控制台。
- 用其他名称再次保存。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
char text[500]; /* Create a character array that will store all of the text in the file */
char line[100]; /* Create a character array to store each line individually */
int inpChar;
FILE *file; /* Create a pointer to the file which will be loaded, to allow access to it */
char fileName[100]; /* Create a character array to store the name of the file the user want to load */
do {
printf("enter menu: [l]oad - [s]ave - [p]rint\n");
scanf("%c", &inpChar);
}
while((inpChar != 'l') && (inpChar != 's') && (inpChar !="p"));
if((inpChar == 'l'))
{
printf("Enter the name of the file containing ship information: ");
}
scanf("%s", fileName);
/*Try to open the file specified by the user. Use error handling if file cannot be found*/
file = fopen(fileName, "r"); /* Open the file specified by the user in 'read' mode*/
if(file == NULL){
printf("The following error occurred.\n");
}
else {
printf("File loaded. \n"); /* Display a message to let the user know
* that the file has been loaded properly */
}
do {
printf("enter menu: [l]oad - [s]ave - [p]rint\n");
scanf("%c", &inpChar);
}
while((inpChar != 'l') && (inpChar != 's') && (inpChar !='p'));
if((inpChar == 'p'))
{
file = fopen(fileName, "r");
fprintf(file, "%s", line);
fclose(file);
}
return 0;
}
我缺少控制台面板上的打印文本;它不起作用,并且代码中缺少保存选项。我该怎么办?
【问题讨论】:
-
file = fopen(fileName, "r"); if(file == NULL){ perror( filename ); } -
定义“它不起作用”..
-
您能否将代码示例缩减为仅包含不起作用的代码,而不会像用户界面那样混乱?
-
我在您的代码中发现了很多问题,太多无法发布细节。您应该更好地解决问题...编写一个具有一个功能的程序来加载您的文件(首先使用固定的文件名)。让您满意(请注意,您粘贴的代码对输入文件进行了准确的 zero 读取!)。然后使用另一个将内容打印到屏幕的功能修改程序。 (您的代码也不会这样做,考虑到您还没有读取文件,这很好。)最后,将文件保存到其他位置的例程。一旦这些都奏效了,然后考虑提示该做什么。
-
好的,但打印功能仍然存在同样的问题!。