2014-11-08 8 views
-7

Я хочу спросить у пользователя, что имя файла для сканирования, а затем сканировать его. Это то, что у меня есть до сих пор. Я потерялся. Помогите? :)Хотите спросить пользователя, какой файл они хотят сканировать в C

int main(){ 
    char name[20]; 

    printf("Enter file name\n"); 
    scanf("%c", &name); 

    FILE * Info; 
    Info = fopen("" , "r"); 

    system("pause"); 
    return 0; 
} 
+1

система {"пауза"); ? ошибка печати? –

+0

о Info = fopen (имя, «r»); –

ответ

0

Модифицированный код:

#include<stdio.h> 
#include<stdlib.h> 
    //you need headers for your code to compile 

int main(){ 
char name[20]; 

printf("Enter file name\n"); 
     scanf("%19s", name);//note the changes 

FILE * Info; 
    Info = fopen(name , "r"); //changed here too 
    if(Info==NULL) 
      printf("opening %s failed",name); 

system("pause"); 
return 0; 
} 

Вы должны использовать %s в scanf для сканирования строк. После этого name содержит имя файла. Так передайте его fopen. Вам также необходимо проверить, не произошло ли открытие. Поэтому просто сравните, если Info==NULL, чтобы проверить это, поскольку я сделал это в модифицированном коде выше.

+0

Возможно, вы не хотите использовать буфер размером всего 20 байт для хранения предоставленного пользователем имени файла, полученного с помощью '% s', который не имеет максимальной ширины поля. –

+0

Я добавил 19 в 'scanf'. В чем проблема с 20-байтовым массивом? –

+0

Спасибо, ребята, за ваш вклад! Он продолжает говорить, что он не может открыть файл. Вы знаете, почему это может быть? Его просто текстовый файл в той же папке, что и программа. – user3047983

Смежные вопросы

 Смежные вопросы