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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 91, средняя оценка - 4.97
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
#1

Проверка, пустая строка или нет - C++

04.12.2011, 11:28. Просмотров 13998. Ответов 10
Метки нет (Все метки)

Здравствуйте, подскажите как реализовать проверку на пустую строку??
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
28
29
30
31
32
33
34
35
36
37
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
 
main()
{
char x[100], n[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt"); 
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
   
   
  fscanf( fi, "%s", &n );
  fscanf( fi, "%s", &x );
  printf("%s\n",n);
  printf("%s\n",x);
    
  if (strcmp(n, x))
     {
         printf("true");
         }
     else
     {
        printf("false");
 
         }
 
     Sleep(5000); 
 
   fclose(fi); 
   fclose(fo);
 
 
  return 0;
}
Пробывал вот так
C++
1
if (strcmp(n, "\n"))
все равно не получается.
объясните почему не работает?
файл mix2.txt выглядит так:
Код
mix
mix
mix



mix
mix

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

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

Проверка является ли строка числом полностью числом или нет? - C++
как проверить является ли строка типа &quot;23уар&quot; полностью числом или нет?

Проверка конец файла или нет - C++
Подскажите пожалуйста если читаю числа типа int и не знаю когда конец файла как это проверять?Заранее спасибо.Если можно пример.

Проверка, записано ли значение в элементе массива или нет? - C++
подскажите пожалуйса мне условие для проверки получается у меня есть два способа заполнения масива, поелементное с указанием номера...

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

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

10
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 11:31 #2
C
1
2
3
4
if ( ! strlen ( s )  )
       printf ("\n Yes");
else
       printf ("\n No");
Добавлено через 1 минуту
Цитата Сообщение от Myk21 Посмотреть сообщение
Пробывал вот так
На самом деле, если пустая строка, то первый символ '\0'
Можно еще так
C
1
2
3
4
if ( ! s[0] )
       printf ("\n Yes");
else
       printf ("\n No");
0
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
04.12.2011, 12:03  [ТС] #3
Пробывал 2 варианта когда в файле mix первая строка пустая и когда первая строка не пуста. в обеих случаях принтует" No".
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
28
29
30
31
32
33
34
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
main()
{
char x[100], n[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt");
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
   
   
  fscanf( fi, "%s", &n );
//  fscanf( fi, "%s", &x );
  printf("%s\n",n);
//  printf("%s\n",x);
    
if ( ! n[0] )
       printf ("\n Yes");
else
       printf ("\n No");
 
 
 
 
     Sleep(5000); 
 
   fclose(fi); 
   fclose(fo);
 
 
  return 0;
}
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
04.12.2011, 12:10 #4
Значит строка не пустая
http://codepad.org/coQf5vdM
0
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 01:01  [ТС] #5
Может быть что fscanf( ); не купирует пустые строки, а просто пропускает их ? Если да. Как скопировать пустую строку??
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
05.12.2011, 10:46 #6
Цитата Сообщение от Myk21 Посмотреть сообщение
Как скопировать пустую строку??
C
1
2
3
char buf (1024);
 
fgets (buf,1024,in_file);
Добавлено через 36 секунд
Еще можно выполнить проверку работы функции fgets
0
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 23:25  [ТС] #7
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
28
29
30
#include <stdlib.h>
#include <stdio.h>
#include <Windows.h>
main()
{
 char  n[100], q[100];
 FILE * fi; 
  FILE * fo;
   fi = fopen("mix2.txt","rt");
   fo = fopen("mix3.txt","wt");
   int  i = 0; 
 
   fgets(n,100,fi);
  
if( strcmpi(n, "\0")){
    printf("true\n");
    }
  else
  {
      printf("false\n");
      }
 
         Sleep(2000);
 
 
 
 
   fclose(fi); 
   fclose(fo);
}
Почему всегда true принтует ??
когда 1я строка пустая или заполнена в файле mix2.
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
05.12.2011, 23:27 #8
C++
1
if( ! strcmpi(n, "\0")){
strcmp возвращает ноль если строки равны.
0
Myk21
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 23:39  [ТС] #9
C++
1
if(strcmp(n, "\0")!=0 ){
Все равно true принтует. хоть пуста первая строка в файле mix2 хоть заполнена.
Может это не правильно "\0" строка пуста? както по другому конец строки обозначать можно?
0
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
05.12.2011, 23:44 #10
Myk21, читайте, что вам пишут.
0
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
06.12.2011, 13:38 #11
C
1
2
3
4
5
6
char s[BUFSIZ];
 
if ( ! s[0] )
   printf ("True"); // Пустая
else
   printf ("False");
0
06.12.2011, 13:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2011, 13:38
Привет! Вот еще темы с ответами:

Проверить, пустая ли строка. (fstream) - C++
Добрый вечер, ув. форумчане. Допустим есть пример: void main() { char text; ofstream fout(&quot;test.txt&quot;, ios::app); ...

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

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

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


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

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

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