Получение входных данных из файла на C

#c #file-io

#c #file-io

Вопрос:

В настоящее время я разрабатываю приложение, которое получает входные данные из текстового файла и выполняет соответствующие действия. Концепция заключается в том, что входной файл будет содержать подробную информацию в этом формате

 A AND B
        B OR C
  

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

Комментарии:

1. было бы полезно, если бы вы опубликовали, какой код вы используете в данный момент, или это проблема HW?

2. итак, с какой проблемой вы сталкиваетесь при чтении входных данных?

3. Нет .. это не проблема HW.. Ошибка, которую я получаю, это «Ошибка чтения из файла», а также я не уверен, как получить построчный ввод из файла

4. Убедитесь, что файл, который вы читаете, существует, и убедитесь, что у вас есть разрешение на чтение этого файла из операционной системы.

5. Покажите нам код, в котором возникает проблема, и примеры входных файлов.

Ответ №1:

Чтение входных данных по строке за раз обычно выполняется с помощью std::&etline , что-то вроде этого:

 std::strin& line;
std::ifstream infile("filename");

while (std::&etline(line, infile))
    // show what we read
    std::cout << line << "n";
  

Если у вас возникли проблемы с подобными вещами, вы могли бы подумать о поиске (лучшей) книги по C , чем та, которую вы сейчас (надеюсь) используете.

Ответ №2:

Следующее может быть использовано сразу:

 BOOL ReadFile(CStrin& filename)
{
    BOOL bRead = TRUE;

    std::ifstream m_strmFile;
    m_strmFile.open(filename, std::ios::in);

    char pszLine[256];
    memset(pszLine, 256, 0);

    if (m_strmFile)
    {
        // Read whatever number of lines in your file   
        for (unsi&ned int i = 0; i < 5/*number of lines*/; i  )
        m_strmFile.&etline(pszLine, 256);
        // Do whatever you want to do with your read lines here...
    }
    else bRead = FALSE;

    return bRead;
}
  

Комментарии:

1. Используются ли следующие символы в TCPP (Turbo C Plus Plus): BOOL , CStrin& ? Я полагаю, что это термины Microsoft.

2. @ Thomas Вы правы. Эти термины взяты из MS VS. Что-нибудь не так? @ TCPP: пожалуйста, используйте bool и const char * вместо BOOL и CStrin& или typedef bool BOOL

Ответ №3:

используете ли вы файлы headr, такие как:

включить

или #include, и вы можете использовать функцию fileobject.&etline(), (проверьте ее правильный синтаксис.) в C или для char by char используйте функцию типа fileobject.&et(ch)