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

Вопрос по строкам - C++

Восстановить пароль Регистрация
 
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
01.06.2011, 17:16     Вопрос по строкам #1
Доброго всем дня!!! Рябята, подскажите, признак окончания строки - это константа '\0'? Если да, то как мы можем считать строку из файла в которой есть пробелы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.06.2011, 17:16     Вопрос по строкам
Посмотрите здесь:

Вопрос по строкам (string) C++
Поиск по строкам C++
C++ Интересный вопрос по строкам
Сортировка по строкам C++
вопрос по строкам C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 17:23     Вопрос по строкам #2
Да
Считать можно разными способами, например std::cin.getline или std::getline которые игнорируют разделители.
Если читать строку обычными способами(>> или scanf("%s",..) ), то мешает не терминальный нуль(\0), а разделители, в данном случае пробелы, которые прерывают ввод.
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
01.06.2011, 17:30  [ТС]     Вопрос по строкам #3
Цитата Сообщение от diagon Посмотреть сообщение
Если читать строку обычными способами, то мешает не терминальный нуль(\0), а разделители, в данном случае пробелы, которые прерывают ввод
как это можно исправить? нужно это сделать без дополнительных ф-ций, кроме ввода-вывода.
А можно ли, ввести проверку на пробелы, т.е. читать до конца файла, и игнорировать пробелы?
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
01.06.2011, 17:39     Вопрос по строкам #4
Т.е. пробелы вам не нужны?
C++
1
2
3
4
ifstream in;
char c;
while (in >> c)  
        //используем считанный символ
Так пробелы считываться не будут
Spirited
7 / 7 / 0
Регистрация: 18.01.2009
Сообщений: 55
01.06.2011, 17:51  [ТС]     Вопрос по строкам #5
нужно использовать только
C++
1
#include <stdio.h>
и ф-ции fopen, fclose, fscanf, fprintf. даже банальный strlen нельзя))) Нужно все писать самому)))

Вот фрагмент моего кода:
C++
1
2
3
4
5
6
7
8
int strlen(char str[]) {
    int index;
    char space = ' ';
 
    for ( index = 0; str[index] != '\n'; index++ );
    
    return index;
}
Добавлено через 1 минуту
strlen пока не дописал на игнор пробелов

Добавлено через 42 секунды
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int main() {
    char str[N];
    int len;
    char lowCaseLetter[26];
    char upperCaseLetter[26];
    char space = ' ';
    int newChar;
    FILE *fin = fopen("c:\\task.in", "r");
    FILE *fout = fopen("c:\\task.out", "w");
 
    fscanf(fin, "%99s", str);
    
    len = strlen(str);
 
    printf("%d\n", len);
 
    for ( int i = 0; i < len; i++ ) {
        printf("%c", str[i]);
    }
}
Yandex
Объявления
01.06.2011, 17:51     Вопрос по строкам
Ответ Создать тему
Опции темы

Текущее время: 00:48. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru