| Другое > 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 . |
| Навигация |
| Главная страница сообщений |