Форум программистов, компьютерный форум CyberForum.ru

Как определить строковую переменную? - C++

Восстановить пароль Регистрация
 
lex90
2 / 2 / 0
Регистрация: 19.01.2014
Сообщений: 51
31.01.2014, 12:07     Как определить строковую переменную? #1
Првиет всем!

Ситуация такая.Мне нужно что бы введенная строка загрузилась в переменную.А далее эта переменная была переданна в качестве аргумента функции.Примерно так.
C++ (Qt)
1
2
3
std::cin>>stroka
 
FILE *L = fopen (stroka ,"r"); \\ тут строка это путь к TXT файлу.Который мы открываем с "r" (Аргумент или т.д)
Как обьявить переменную stroka? Правельно или обьявить и указать на нее ссылку?Запутался в конец.Подскажите пожалуйста.
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
31.01.2014, 12:16     Как определить строковую переменную? #2
C++
1
2
3
string stroka;
cin>>stroka;
FILE *L = fopen (stroka.c_str() ,"r");
lex90
2 / 2 / 0
Регистрация: 19.01.2014
Сообщений: 51
31.01.2014, 12:27  [ТС]     Как определить строковую переменную? #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<windows.h>
#include<urlmon.h>
#include <cstring>
#pragma comment (lib, "urlmon.lib")
int main(){ 
                   
                   
                   
                   std::cout<<"Vvedite put k txt file!"; 
                   
                   string stroka;
                   std::cin >> stroka;
                  
                   FILE *L= fopen (stroka.c_str() ,"r");
                   char  buff [256];
                   fgets( buff,64,L);
                   while( buff == 0){std::cout<<"Error!" ; return 0 ;};
                   
                   HRESULT CoInitialize(NULL);
                   
                   URLDownloadToFile(NULL,buff,"D:\file.exe",NULL,NULL);
                   
                   std::cout<<"Start download!" ;
                   
return 0;
}
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(12): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "stroka"
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(12): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(13): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(15): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(15): error C2228: выражение слева от ".c_str" должно представлять класс
Alkenso
5 / 4 / 4
Регистрация: 30.01.2014
Сообщений: 27
31.01.2014, 12:29     Как определить строковую переменную? #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
или же, в стиле С:
C++
1
2
3
char stroka[256];
cin>>stroka;
FILE *L = fopen (stroka ,"r");
Добавлено через 1 минуту
Цитата Сообщение от lex90 Посмотреть сообщение
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(12): error C2146: синтаксическая ошибка: отсутствие ";" перед идентификатором "stroka"
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(12): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(13): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(15): error C2065: stroka: необъявленный идентификатор
1>c:\users\lex90\documents\visual studio 2010\projects\89\89\89.cpp(15): error C2228: выражение слева от ".c_str" должно представлять класс
Добавь библиотеку #include <string>
dzrkot
zzzZZZ...
 Аватар для dzrkot
516 / 346 / 53
Регистрация: 11.09.2013
Сообщений: 1,977
31.01.2014, 12:31     Как определить строковую переменную? #5
#include <string.h>
std::string stroka;
lex90
2 / 2 / 0
Регистрация: 19.01.2014
Сообщений: 51
31.01.2014, 13:28  [ТС]     Как определить строковую переменную? #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include<iostream>
#include<windows.h>
#include<urlmon.h>
#include <string>
#pragma comment (lib, "urlmon.lib")
int main(){ 
                   
                   
                   
                   std::cout<<"Vvedite put k txt file!"; 
                   char stroka[256];
                   
                   std::cin >> stroka;
                  
                   FILE *l = fopen (stroka,"r");
                   char  buff [256];
                   fgets( buff,256,l);
                   while( buff == 0){std::cout<<"Error!" ; return 0 ;};
                   
                   HRESULT CoInitialize(NULL);
                   
                   URLDownloadToFile(NULL,buff,"D:\Dima.eexe",NULL,NULL);
                   
                   std::cout<<"Start download!" ;
                   
return 0;
}
Такой вариант работает вполне нормально.Проверил.
Yandex
Объявления
31.01.2014, 13:28     Как определить строковую переменную?
Ответ Создать тему
Опции темы

Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru