Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Помогите с ошибкой unexpected end of file..


Автор: Конышес 24.3.2006, 16:03
Код

#include <stdio.h>
using namespace std;
int add (int x, int y)
{
    cout << "in add() received "<<x <<" and " << y << "\n";
    return (x+y);
}

void main ()
{
    cout << "I'm in main()\n";
    int a,b,c; 
    cout << "enter two numbers: ";
    cin >>a;
    cin >>b;
    cout << "/calling add/\n";
    c=add(a,b);
    cout << "back main()\n" << "c= " << c;
    cin a;
}



прии попытки скомпилировать выдаёт c:\program files\microsoft visual studio\myprojects\example1\example1.cpp(24) : fatal error C1010: unexpected end of file while looking for precompiled header directive
Error executing cl.exe.
в мсдн смотрел но из-за не очень хорошего знания англюяза так и не смог разобратся, зараенее спасибо за помощь!

Автор: _hunter 24.3.2006, 16:14
в визарде убери галку "use precompiled headers"
Добавлено @ 16:16
+ посмотри на 19-ю строчку и сравни ее с 15-й...

Автор: Конышес 24.3.2006, 17:45
спасибо

Автор: DeadSoul 24.3.2006, 22:05
Цитата(_hunter @ 24.3.2006, 16:14 Найти цитируемый пост)
в визарде убери галку "use precompiled headers"

Не надо ее убирать.

В каждый cpp-файл первой строкой #include "StdAfx.h"

Автор: garbage 2.9.2006, 13:24
Код

#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <fstream.h> // для файловых потоков
const int lenName = 13; // max длинна имени файла
// Длинна вспомогательного массива:
const int lenString = 60;
void main()
{ char source[lenName]; // Массив для имени файла 
cout << "\nVvedite imya fayla: ";
cin >> source;
ifstream inFile; // Входной файловый поток 
// Открыть файл source и связать его с потоком inFile:
inFile.open(source);
if (!inFile) // Проверить правильность открытия файла
    { cerr << "\nОшибка при открытии файла " << source;
      exit(1); // Завершение программы 
      }
// Вспомогательный массив для чтения:
char string[lenString];
char next;
cout << "\n Текст файла: \n\n";
cin.get();                      // Убираем код из потока cin
while (1)                       // Неограниченный цикл
    { // Ввод из файлов одного слова до пробельного символа либо EOF:
      inFile >> string;
      // Проверка следующего символа:
      next = inFile.peek();
      // Выход по достижении конца файла:
      if (next == EOF) break;
      // Печать с добавлением разделительного пробела:
      cout << string << " ";
      if (next == '\n') // Обработка конца строки 
         { cout << '\n';
           // 4 - смещение для первой странницы экрана:
           static int i = 4;
           // Деление по страниам до 20 строк каждая:
           if (!(++i % 20))
              ( cout << "\nДля продолжения вывода "
                        "нажмите ENTER. \n" << endl;
              cin.get();
          }
       }
   }
}

при попытке компиляции 
[C++ Error] hex_editor_B.cpp(43): E2293 ) expected
[C++ Error] hex_editor_B.cpp(48): E2190 Unexpected }
изучать язык только начал, поэтому за вопрос строго не судите smile 
спасибо
[C++ Error] hex_editor_B.cpp(48): E2190 Unexpected }

Автор: vinter 2.9.2006, 13:34
Удали последнюю закрывающую скобку,
и здесь че у тебя скобка перед cout'ом делает?? smile 
Код

( cout << "\nДля продолжения вывода "    
                        "нажмите ENTER. \n" << endl;

Цитата

Не надо ее убирать. 

В каждый cpp-файл первой строкой #include "StdAfx.h"

какой смысл в этом хидере в таких программках??

Добавлено @ 13:36 
кстати garbage поставь компилятор поновее!! и код форматируй по общепризнанным правилам, тогда таких ошибок у тебя не будет

Автор: chozen 2.9.2006, 15:36
precompiled headers здесь не виноваты!!!

Цитата

кстати garbage поставь компилятор поновее!! и код форматируй по общепризнанным правилам, тогда таких ошибок у тебя не будет

Кста, все равно кодеры в результате отходят от стандартов форматирования.
Тем не менее, привычка четко разделять код у них остается, только в своем стиле, ты прав.

Автор: garbage 3.9.2006, 09:21
а есть ли разница в чем компилировать? У меня builder 6 все компилит и все ок ток программа не работает smile 
а Dev-C++ находит ошибки типа: 
31 C:\Dev-Cpp\include\c++\backward\fstream.h
In file included from C:/Dev-Cpp/include/c++/backward/fstream.h
2 C:\Dev-Cpp\include\c++\backward\backward_warning.h:32
#warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>. To disable this warning use -Wno-deprecated.
и др. 
в чем же все таки лучше все это делать? 

Автор: vinter 3.9.2006, 09:46
Цитата

в чем же все таки лучше все это делать? 

да в принципе то без разници, я про компилер так ,просто новые компилеры новый стандарт поддерживают, удобнее все таки.. smile 
Цитата

а Dev-C++ находит ошибки типа: 

там видимо эти хидеры пл другому называются , просто переименуй и все впоряде smile 

Автор: garbage 3.9.2006, 09:53
что такое хидеры? поискал в инете, про слово хидеры пишут совсем разные и противоложные вещи.

Автор: vinter 3.9.2006, 09:55
header - заголовок
пример
Код

include<iostream>

Автор: garbage 3.9.2006, 10:08
похоже, что так и есть. а как узнать как правильно их переименовать?
а где можно посмотреть эти стандарты? 

Автор: bsa 3.9.2006, 10:56
Код
#warning This file includes at least one deprecated or antiquated header.
Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.
Examples include substituting the <X> header for the <X.h> header for C++ includes, or <sstream> instead of the deprecated header <strstream.h>.
To disable this warning use -Wno-deprecated.

Тебе же написали: "Используй <sstream> вместо устаревшего <strstream.h>". И вообще, все стандартные заголовочные файлы ("хидеры") в С++ потеряли окончание (а у сишных надо в начале еще букву c добавлять: #include <cstdio>, #include <cstring>): <sstream>, <fstream>, <iostream>, <map>, <list>, <vector>, <string> и т.д. Правда, после подключения надо будет в обязательном порядки использовать пространство имен std. Или поместив "using namespace std;" в начало программы, или перед каждой функцией (классом) писать "std::": std::cin, std::cout, std::endl, std::vector, std::string...

Думаю, что стандарты можно найти, например, здесь:
http://www.cplusplus.com
http://www.sgi.com/tech/stl

Автор: chozen 3.9.2006, 23:26
Одназначно учить с++ и английский язык smile , ведь большинство ошибок выводятся не для того, чтоб ты показал на них пальцем и заплакал, а чтоб помочь тебе правильно все сделать.

Почитай Шилдта, Лаптева, Кнута (хотя б просто для эрудиции) smile 

Автор: garbage 4.9.2006, 08:06
уже разобрался, но все равно спасибо smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)