Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.90
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
#1

Ввод имени файла с клавиатуры - C++

06.12.2011, 09:24. Просмотров 6949. Ответов 6
Метки нет (Все метки)

Всем привет!

Хочу сделать так:
C++
1
2
3
4
5
6
7
8
9
10
int main()
{
    char finame[15];
    printf("Enter the name of file: ");
    scanf_s("%s", &finame);
        FILE *f = fopen(finame, 'r');
        if(!f) printf ("Error!");
    ...
    return 0;
}
Но, несмотря на то, что файл 100% существует - всегда печатается Error! и файл не обрабатывается дальше. Как быть?

Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.12.2011, 09:24
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод имени файла с клавиатуры (C++):

Ввод имени входного/выходного файла с клавиатуры (fstream) - C++
Подскажите, пожалуйста, как можно организовать ввод имени входных/выходных файлов для их последующего использования с помощью библиотеки...

Ввод имени в программу с клавиатуры, содержащее 2 или более слова - C++
Помогите, пожалуйста, сделать возможным ввод имени, состоящего из нескольких слов. Например, пункт назначения "Москва" читается без...

Ввод имени файла от пользователя - C++
Как сделать так, что бы консоль запрашивал имя файла? (ну это понятно) А вот как сделать что бы создавался файл с таким именем? что бы в...

Ввод имени для создаваемого файла - C++
Здравствуйте, господа. Можно ли в борланде реализовать функцию ввода имени для создаваемого потом файла, а также его загрузки? ...

Ввод имени файла для ofstream - C++
Здравствуйте, есть консольное приложение, позволяющее пользователю, например, записать что-то текстовый файл, возникает вопрос, при...

Ввод имени файла и текста с консоли - C++
Помогите пожалуйста! #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; int _tmain(int argc,...

6
Roof
154 / 154 / 10
Регистрация: 03.11.2010
Сообщений: 393
06.12.2011, 14:33 #2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
int main( void ) {
    char finame[ 15 ];
    printf( "Enter the name of file: \n" );
    scanf( "%s", finame ); //без амперсанда
    FILE *f = fopen( finame, "r" ); // кавычки заменить
    if ( !f )
        printf( "Error!" );
    else
        printf( "Good!" );
 
    return EXIT_SUCCESS;
}
Имя существующего файла 111222
Вывод консоли:
Код
Enter the name of file: 
111222
Good!
Код
Enter the name of file: 
111
Error!
2
amfisat
67 / 67 / 1
Регистрация: 16.06.2009
Сообщений: 240
06.12.2011, 14:58  [ТС] #3
А если я таким же макаром пытаюсь ввести имя выходного файла, то выскакивает ошибка. Получается, выходной файл обязательно должен существовать? - нам говорили, что это не обязательное условие.
0
OstapBender
584 / 523 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
06.12.2011, 15:16 #4
у файла для вывода ключ открытия должен быть "w"
0
-=ЮрА=-
Заблокирован
Автор FAQ
06.12.2011, 15:20 #5
На мой взгляд имя файла лучше всего вводить через "умный спецификатор" scanf
C
1
2
char fPath[256];
scanf("%[^\n]",fPath);
- можно вводить с пробелами, считает все символы до нажатия Enterа аналогично плюсовому cin.getline
2
go
Эксперт С++
3586 / 1366 / 129
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 15:42 #6
-=ЮрА=-, scanf придуман для того, чтобы считывать до пробела
Рекомендую
C
1
2
char name[BUFSIZ];
fgets (name,BUFSIZ,stdin);
0
-=ЮрА=-
Заблокирован
Автор FAQ
06.12.2011, 17:32 #7
Цитата Сообщение от go Посмотреть сообщение
scanf придуман для того, чтобы считывать до пробела
введи You are wrong

в
C
1
2
scanf("%s",str); 
scanf("%[^\n]",str);
и почувствуй разницу...!

Добавлено через 1 минуту
scanf придуман чтобы осуществлять ввод в соответсвии со спецификатором формата, а ты наплёл хр*ни, если не знаешь не пиши!
2
06.12.2011, 17:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 17:32
Привет! Вот еще темы с ответами:

Ввод/вывод имени и пути файла, а также защита от дурака - C++
Доброго времени суток, господа. Что-то я либо некорректно формулирую запрос в google, либо просто мало чего есть на эту тему. Надо мне...

Ввод двумерного массива с клавиатуры и из файла - C++
Здравствуйте. Хочу сделать программу, которая позволяет вводить двумерный массив либо из файла, либо с клавиатуры. Вот я написал код: ...

Переделать программу со вводом с клавиатуры на ввод из файла - C++
нужно сделать в программе чтоб ввод был из файла, а не с клавиатуры #include &lt;iostream&gt; #include &lt;locale.h&gt; #include &lt;math.h&gt; ...

Ввод массива как с клавиатуры, так и из файла - C++
Мое задание предполагает что массив будет вводиться на усмотрение пользователя либо с клавиатуры, либо из файла. Как это реализовать по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.