Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
pelmeny3751
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 16
1

Считывание строки из файла

29.05.2016, 21:55. Просмотров 799. Ответов 6
Метки нет (Все метки)

Доброго времени суток!
В программе необходима реализация ввода строки из файла и дальнейшая работа с ней. Используются GTESTS. Также требуется не пользоваться библиотечными функциями.
Возникла сложность именно со считыванием строки из файла.

Функция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include "stdafx.h"
#include "functions.hpp"
 
using namespace std;
char* Input(char* file)
{
    char* arr = new char[];
    ifstream Input(file);
    Input >> arr;
    Input.close();
    return arr;
}
И сами тесты:
C++
1
2
3
4
5
6
7
8
9
#include "stdafx.h"
#include "../.../functions.hpp"
 
using namespace std;
TEST(Input, 1)
{
    char arrTest[] = "078a";
    EXPECT_EQ(arrTest, Input("Input.txt"));
}
В файле "Input.txt" записана только строка "078a".
Вот что выдают тесты при запуске программы:

Test.Input.cpp(8): error: Expected: arrTest
Which is: 000000F519CDF990
To be equal to: Input("Input.txt")
Which is: 000000F519E2E640
Почему так происходит и как это исправить?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2016, 21:55
Ответы с готовыми решениями:

Считывание строки из файла
Что то не врублю, как считать полностью всё содержимое файла и занести его в...

Считывание строки с файла
Подскажите как сделать так чтобы с файла считывало не одну строку а все!...

считывание строки из файла
Помогите,пожалуйста,с программой. Необходимо считать из файла строку,удалить...

Считывание строки из файла.
Появилась проблема. Строка из файла считывается, но не реагирует на пробелы....

Считывание строки из файла
Здравствуйте Проблема такая: во время считывания строки из файла выносит из...

6
nd2
2835 / 2403 / 1057
Регистрация: 29.01.2016
Сообщений: 8,045
29.05.2016, 22:06 2
Цитата Сообщение от pelmeny3751 Посмотреть сообщение
char* arr = new char[];
Памяти 0 байтов выделил.
0
nimazzzy
Заблокирован
29.05.2016, 22:10 3
deleted
0
pelmeny3751
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 16
29.05.2016, 22:10  [ТС] 4
Добавление какого-угодного кол-ва байт не помогает(число между квадратными скобками, если я правильно понял), к сожалению.
0
nimazzzy
Заблокирован
29.05.2016, 22:11 5
Лучший ответ Сообщение было отмечено pelmeny3751 как решение

Решение

Gtest не знаю, но, похоже, что макрос EXPECT_EQ тупо сравнивает через ==. Для указателей получаются разные адреса, что нормально.
C++
1
EXPECT_EQ(0, strncmp(arrTest, Input("Input.txt"), 4));
не работает?
1
pelmeny3751
0 / 0 / 0
Регистрация: 02.04.2016
Сообщений: 16
29.05.2016, 22:18  [ТС] 6
Bash
1
не работает?
, спасибо, работает. Но только что откопал другой макрос именно для сравнения строк ASSERT_STREQ. Так же рабочий. Всем спасибо, проблема решена
0
nimazzzy
Заблокирован
29.05.2016, 22:22 7
Цитата Сообщение от pelmeny3751 Посмотреть сообщение
Но только что откопал другой макрос именно для сравнения строк ASSERT_STREQ
Ну да, было бы логично иметь функцию сравнения и для указателей на char.
0
29.05.2016, 22:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2016, 22:22

Считывание строки из файла
Здравствуйте. Есть такой класс (это упрощенный тестовый класс): class...

Считывание строки из файла
Пишу что-то типа простой авторизации на c++, нужно взять из файла определенную...

Считывание из файла до конца строки
Нужно написать программу, которая создаёт файл, каждая строка которого содержит...


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

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

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