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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 30, средняя оценка - 4.73
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
#1

Проверить, пустая ли строка. (fstream) - C++

17.09.2011, 02:21. Просмотров 3977. Ответов 11
Метки нет (Все метки)

Добрый вечер, ув. форумчане.

Допустим есть пример:
C++
1
2
3
4
5
6
7
8
9
void main()
{
        char text[255]; 
 
    ofstream fout("test.txt", ios::app);
        cin.getline(text, 255);
    fout << text << "\n";
    fout.close();
}
Как мне проверить, пустая ли строка в которую записывается текст?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2011, 02:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проверить, пустая ли строка. (fstream) (C++):

При вводе из файла проверить, следующая строка пустая или нет - C++
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла пустой. Допустим: &gt;Он любил кататься на...

Пустая строка - C++
Делал задание по перегрузке функций. Перегружаю функцию sum. В одном из заданий надо ее перегрузить для подсчета значения переменных типа...

Как проверить, открылся ли fstream? - C++
Nado otkrit file i proverit otkrilsa li on ili net. Podskazhite kakim obrazom eto mozhno sdelat? Zaranee spasibo.

Пустая строка в функции - C++
Имеется такая функция: int setgolf (golf &amp; g) { std::cout &lt;&lt; &quot;Введите имя гольфиста: &quot;; std::cin &gt;&gt; g.fullname; if...

Переход на строку и пустая строка в файле - C++
Условие. Создайте два выходных файла: в один перепишите из каждой строки первые k слов, в другой - оставшиеся. Если в строке меньше, чем k...

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

11
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
17.09.2011, 08:23 #2
C++
1
*text ? не пустая : пустая
Если учитывать, что могут быть пробелы, то как-то так
C++
1
2
3
4
bool is_empty = true;
for ( int i = 0 ; text[i] && is_empty ; ++i)
   is_empty -= text[i] != ' ';
is_empty ? пустая : непустая
1
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
18.09.2011, 01:04  [ТС] #3
C++
1
2
1>.\main.cpp(16) : warning C4804: -=: небезопасное использование типа 'bool' в операции
1>.\main.cpp(16) : warning C4800: int: принудительно задано логическое значение 'true' или 'false' (предупреждение о производительности)
Добавлено через 2 минуты
Ваша процедура кажется не совсем правильная.
Ведь строку надо считать из файла, а не из консоля. (cin.getline(text, 255))
0
alkagolik
Заблокирован
18.09.2011, 01:54 #4
Цитата Сообщение от res Посмотреть сообщение
Ведь строку надо считать из файла, а не из консоля. (cin.getline(text, 255))
ваш код вообще считывает массив из консоли, и записывает в файл.
тырц
0
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
18.09.2011, 02:59  [ТС] #5
Вы мою задачу кажется не поняли.
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
18.09.2011, 03:06 #6
Цитата Сообщение от res Посмотреть сообщение
Как мне проверить, пустая ли строка в которую записывается текст?
C++
1
2
3
4
5
6
7
char text[255]; 
text[0] = '\0'; 
ofstream fout("test.txt", ios::app);
cin.getline(text, 255);
if (strlen(text))        
   fout << text << "\n";
fout.close();
1
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
18.09.2011, 03:39  [ТС] #7
kazak,
пустая ли строка в которую записывается текст
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
18.09.2011, 04:36 #8
C++
1
2
3
4
char text[255]; 
text[0] = '\0'; 
if (!strlen(text)) 
   cin.getline(text, 255);
Добавлено через 13 минут
Хотя в принципе strlen здесь лишний, в данном случае достаточно проверить нулевой элемент на ноль.
0
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
18.09.2011, 04:58  [ТС] #9
Наверное я объяснять не умею
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    
        bool is_empty = true;
    char text[255]; 
 
    ifstream fin("test.txt");
        if(!fin.is_open())
            return;
 
    fin.getline(ch, 255);
    for(int i=0; i<255; ++i)
    {
        if(text[i]!= ' ')
            is_empty = false;
    }
    fin.close();
Во пытался проверить строку на отсутствие символов, не получилось.
0
kazak
3035 / 2356 / 155
Регистрация: 11.03.2009
Сообщений: 5,402
Завершенные тесты: 1
18.09.2011, 05:18 #10
Пустая строка в смысле из одних пробелов?

Добавлено через 7 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
bool IsEmpty(char *str)
{
   int ch;
   
   for (int i = 0; str[i]; i++)
   {
      ch = (int)str[i];
      if (!isspace(ch))
         return false;
   }
   
   return true;
}
0
alkagolik
Заблокирован
18.09.2011, 05:19 #11
Цитата Сообщение от res Посмотреть сообщение
Во пытался проверить строку на отсутствие символов, не получилось.
почему же н е получилось? все получилось, Вы проверили строку на наличие пробелов, т.е. символа ' '
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
18.09.2011, 07:00 #12
Цитата Сообщение от res Посмотреть сообщение
Ваша процедура кажется не совсем правильная.
Это предупреждения, а не ошибки. В данном случае ничего опасного нету.

Цитата Сообщение от res Посмотреть сообщение
Ведь строку надо считать из файла, а не из консоля. (cin.getline(text, 255))
Да хоть сами заполняйте, я привел фрагмент кода, в котором проверяется, пустая ли строка.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.09.2011, 07:00
Привет! Вот еще темы с ответами:

Проверка, пустая строка или нет - C++
Здравствуйте, подскажите как реализовать проверку на пустую строку?? #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;Windows.h&gt; ...

Условие: если строка пустая - выполнить действие - C++
Здравствуйте, если можете, помогите создать такое условие: &quot;Условие: если строка пустая - выполнить действие...&quot;, на основе этого...

Пустая строка против строки нулевой длины - C++
Как лучше проверять std::string на пустоту: s==&quot;&quot; или s.lengt()==0?

После чтения числа считывается пустая строка - C++
Нужно считать ряд строк, что-то вроде такого вида: аааа бббб сссс и я попробовал реализовать это через fgets() ...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
18.09.2011, 07:00
Ответ Создать тему
Опции темы

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