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

Как правильно открыть файл и считать из него строку? - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Вывести сообщение о том, что все элементы в массиве равны http://www.cyberforum.ru/cpp-beginners/thread349270.html
Здравствуйте... суть проблемы состоит в том, что я не знаю, как вывести сообщение о том, что все элементы массива равны между собой. Задача заключается в том, чтобы найти сумму элементов до минимального элемента массива, а в случае, если все элементы равны, то есть все минимальные (например только нули или только единицы) - вывести сообщение об этом. А так же если минимальный элемент стоит...
C++ __declspec(property) и с чем его едят Что это такое и как это использовать? У меня задание в лабораторной по обычному с++, но вот такая штука имеет место быть. Насколько я понял это какие-то свойства, прикрученные ms но как они используются? Заголовочный файл где они есть (сама программа представляет собой структуру по хранению данных о студентах): //#include "stdafx.h" #ifndef TYPES_INCLUDE #define TYPES_INCLUDE ... http://www.cyberforum.ru/cpp-beginners/thread349268.html
C++ Оставить в списке только первые вхождения одинаковых элементов
В составе программы описать функцию, которая оставляет в списке только первые вхождения одинаковых элементов. Добавлено через 10 минут куку ))))
описать функцию, которая заменяет все вхождения элемента C++
В составе программы описать функцию, которая заменяет в списке все вхождения элемента E1, значение которого введено с клавиатуры, на эле-мент E2, значение которого также введено с клавиатуры.
C++ Определить, является ли матрица магическим квадратом http://www.cyberforum.ru/cpp-beginners/thread349212.html
Дана целая квадратная матрица n-го порядка. Определить, является ли она магическим квадратом, т.е. такой, в которой суммы элементов во всех строках и столбцах одинаковы. #include <stdio.h> #include <stdlib.h> int main() { int k,ki,kj,i,j,a;
C++ Запутался в флагах Запутался в флагах, переменная rez вычисляется некорректно. Подскажите, как избавиться от ошибки, а ещё лучше, показать правильный код программы :-#include <iostream.h> #include <iomanip.h> #include <stdlib.h> #include <conio.h> struct Node {int key; Node *l; Node *r; }; подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
09.09.2011, 12:22     Как правильно открыть файл и считать из него строку?
Lupus,

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
38
39
#include <iostream>
#include <cstring>
 
using namespace std;
 
// возвращает первый символ после конца слова
// если до слова встречается \n,
// возвращает \n и выставляет первый байт
// buff в 0 (теперь strlen( buff ) == 0 )
char getword( istream &is, char * buff, size_t max )
{
    char ch;
    size_t i = 0;
 
    while( isspace( ch = is.get() ) )
       if( ch == '\n' )
       {
           buff[i] = 0;
           return ch;
       }
 
    do buff[i++] = ch;
    while( !isspace( ch = cin.get() ) && i + 1 < max );
 
    buff[i] = 0;
 
    return ch;
}
 
int main()
{
    char buff[256];
 
    do
       cout << "0x" << hex << (int)getword( cin, buff, 256 ) << " \"" << buff << "\"\n";
    while( strcmp( buff, "quit" ) );
 
    return 0;
}
Добавлено через 6 минут
извините, очепятка в коде:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// возвращает первый символ после конца слова
// если до слова встречается \n
// возвращает \n, выставляет первый байт
// buff в 0 (теперь strlen( buff ) == 0 )
char getword( istream &is, char * buff, size_t max )
{
    char ch;
    size_t i = 0;
 
    while( isspace( ch = is.get() ) )
       if( ch == '\n' )
       {
           buff[i] = 0;
           return ch;
       }
 
    do buff[i++] = ch;
    while( !isspace( ch = is.get() ) && i + 1 < max );
 
    buff[i] = 0;
 
    return ch;
}
Добавлено через 33 секунды
вот тест:

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
int main()
{
    char buff[256];
 
    ifstream fs( "input.txt", ios::in );
 
    if( !fs.is_open() )
       return 1;
 
    do
    {
        char ret = getword( fs, buff, 256 );
 
        if( strlen(buff) == 0 && ret == '\n' )
           cout << " [EOL]\n";
        else if( fs.eof() )
           cout << " [EOF]\n";
        else
           cout << buff << ' ';
    }
    while( fs.good() && !fs.eof() );
 
    return 0;
}
 
Текущее время: 19:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru