Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/244: Рейтинг темы: голосов - 244, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
1

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

04.12.2011, 11:28. Показов 45309. Ответов 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

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2011, 11:28
Ответы с готовыми решениями:

При вводе из файла проверить, следующая строка пустая или нет
Можно ли как-нибудь проверить является ли следующая строка при вводе, например, текста из файла...

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

Проверка конец файла или нет
Подскажите пожалуйста если читаю числа типа int и не знаю когда конец файла как это...

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

10
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
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
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
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
04.12.2011, 12:10 4
Значит строка не пустая
http://codepad.org/coQf5vdM
0
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 01:01  [ТС] 5
Может быть что fscanf( ); не купирует пустые строки, а просто пропускает их ? Если да. Как скопировать пустую строку??
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
05.12.2011, 10:46 6
Цитата Сообщение от Myk21 Посмотреть сообщение
Как скопировать пустую строку??
C
1
2
3
char buf (1024);
 
fgets (buf,1024,in_file);
Добавлено через 36 секунд
Еще можно выполнить проверку работы функции fgets
0
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
Эксперт С++
516 / 420 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
05.12.2011, 23:27 8
C++
1
if( ! strcmpi(n, "\0")){
strcmp возвращает ноль если строки равны.
0
0 / 0 / 0
Регистрация: 04.12.2011
Сообщений: 5
05.12.2011, 23:39  [ТС] 9
C++
1
if(strcmp(n, "\0")!=0 ){
Все равно true принтует. хоть пуста первая строка в файле mix2 хоть заполнена.
Может это не правильно "\0" строка пуста? както по другому конец строки обозначать можно?
0
Эксперт С++
516 / 420 / 92
Регистрация: 23.09.2010
Сообщений: 1,165
05.12.2011, 23:44 10
Myk21, читайте, что вам пишут.
0
go
Эксперт С++
3643 / 1375 / 243
Регистрация: 16.04.2009
Сообщений: 4,527
06.12.2011, 13:38 11
C
1
2
3
4
5
6
char s[BUFSIZ];
 
if ( ! s[0] )
   printf ("True"); // Пустая
else
   printf ("False");
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.12.2011, 13:38

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

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

Вводится пустая строка
Здравствуйте, при выполнении моего кода выходит исключение от функции substr (out_of_range)....

Читается пустая строка
Имеется код, при его компилировании программа игнорирует взятие строки у пользователя и заканчивает...


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

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

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