Другое > Hard'n'Soft
[C++] Как проверить текст в переменной?
(1/1)
Qwentor:

--- Код: ---FILE *file; //Объявляем переменную типа файл и присваиваем имя file
char*filename="C:\\ds\\settings.txt"; //Объявлем переменную имя файла, эта переменная указавает на путь к файлу
char filetext[50]="none"; //Объявляем переменную текст файла.


file = fopen(filename, "r"); /*Открывает файл командой fopen, далее идет путь до файла и режим открытия, у нас это чтение */

if (fopen != 0) //Если удалось отрыть файл
{
fgets(filetext,50,file); //команда fgets присваивает пременной filetext содержимое файла
cout << "filetext = " << filetext << endl;

}
else //Если файл не возможно открыть
{
cout<<"Ошибка окрытия файла"; //Ошибка
}
fclose(file); //После работы файл необходимо закрыть
if (filetext=="used")
{cout << "Yes!"<<endl;}
else
{cout << "No!"<<endl;}
cout << filetext<<endl;
--- Конец кода ---


Не пойму. в файле текст "used'", выводится на экран он правильно, из переменной тоже правильно читается, а при попытке проверить "used" там или не "used" всегда выдает No! :( Проверять надо как-то по-другому?
Прошу сильно ногами не бить, пока еще совсем новичок.
DeniSS:
Дык правильно, что ноу. У тебя char[50], а ты сравниваешь с char[4].
Юзаем strcmp.
И по плюхплюху тема ж вроде есть уже.
Qwentor:

--- Цитата: DeniSS ---Юзаем strcmp.
--- Конец цитаты ---
Спс, теперь работает.

Добавлено позже:

--- Цитата: DeniSS ---И по плюхплюху тема ж вроде есть уже.
--- Конец цитаты ---
Где?

Добавлено позже:
Блин, теперь всегда Yes! почему-то :(


--- Код: ---if(strcmp(filetext, "used"))
{
   cout << "Yes!"<<endl;

}
else
{
   cout << "No!"<<endl;
  
}
--- Конец кода ---

причем на экран выводится правильный текст в файле (т.е. тот который теперь  не "used"), а при сравнении такая фигня
gepar:

--- Цитата: Qwentor ---Где?
--- Конец цитаты ---
You're welcome
Qwentor:
разобрался, должно быть
if(strcmp(filetext, "used")==0) { }


--- Цитата: gepar ---You're welcome
--- Конец цитаты ---
Спасибо, буду теперь писать там. По запросу C++ не находило, видимо С кириллицей.

gepar:
Нет, просто поиск на плюсы не реагирует и ищет только буквы, а букв в запросе "c++" не много.
DeniSS:
Пока я писал ответ, успел)))
А вообще зачем читать 50 чаров из файла, в котором их всего 4? Можно ж проверить длину и подогнать ровно столько же памяти.

Добавлено позже:

--- Цитата: Qwentor от 02 Май 2011, 10:37:08 ---разобрался, должно быть
if(strcmp(filetext, "used\n")==0) { }

--- Конец цитаты ---
Это если ты ставил переход на следующую строку.
Qwentor:

--- Цитата: DeniSS ---Это если ты ставил переход на следующую строку.

--- Конец цитаты ---
да, \n убрал уже, иначе не работает
DeniSS:
И то оно бы было как \r\n .
Навигация
Главная страница сообщений

Перейти к полной версии