![]() |
|
![]() ![]() ![]() |
|
bloood |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 14.3.2007 Репутация: нет Всего: нет |
Данная программа сравнивает файлы, вопрос такой:
данная программа запускается с помощью консоли, чтоб запустить надо ввести в консоли <имя проги> <имя файла1> <имя файла 2>(enter)....как указать в коде пути к файлу1 и файлу2, чтоб не вводить их при запуске из консоли??? <имя проги> это ЕХЕ файл, полученый из кода ниже. Xpsp2, borland turbo c++ 2006. Спасибо! #include <vcl.h> #pragma hdrstop #include <iostream> #include <fstream> using namespace std; //--------------------------------------------------------------------------- #pragma argsused int main(int argc, char *argv[]) { register int i; int numread; unsigned char buffer1[4096], buffer2[4096]; if(argc!=3) { cout << "Usage: compfiles <file1> <file2>\n"; return 1; } ifstream f1(argv[1], ios::in | ios::binary); if(!f1) { cout << "Cannot open first file.\n"; return 1; } ifstream f2(argv[2], ios::in | ios::binary); if(!f2) { cout << "Cannot open second file.\n"; return 1; } cout << "Comparing files...\n"; do { f1.read((char *) buffer1, sizeof buffer1); f2.read((char *) buffer2, sizeof buffer2); if(f1.gcount() != f2.gcount()) { cout << "Files are of differing sizes.\n"; f1.close(); f2.close(); return 0; } for(i = 0; i <f1.gcount(); i++) // compare contents of buffers if(buffer1[i] != buffer2[i]) { cout << "Files differ.\n"; f1.close(); f2.close(); return 0; } } while(!f1.eof() && !f2.eof()); cout << "Files are the same.\n"; f1.close(); f2.close(); return 0; } |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 1 Всего: 50 |
|
|||
|
||||
bloood |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 14.3.2007 Репутация: нет Всего: нет |
Не работает, вот что выдаёт при запуске, номер строки, как в твоём коде....
[C++ Error] Unit1.cpp(18): E2451 Undefined symbol 'stding' [C++ Error] Unit1.cpp(18): E2379 Statement missing ; [C++ Error] Unit1.cpp(19): E2285 Could not find a match for 'ifstream::basic_ifstream(string,_Iosb<int>::_Openmode)' [C++ Error] Unit1.cpp(25): E2451 Undefined symbol 'path_b' [C++ Error] Unit1.cpp(25): E2285 Could not find a match for 'ifstream::basic_ifstream(undefined,_Iosb<int>::_Openmode)' Добавлено через 7 минут и 8 секунд Прошу прощение, опечатка в строке 18 вместо stding, должно быть string.... Но всё равно ошибки в строках 19 и 25 такого плана [C++ Error] Unit1.cpp(19): E2285 Could not find a match for 'ifstream::basic_ifstream(string,_Iosb<int>::_Openmode)' [C++ Error] Unit1.cpp(25): E2285 Could not find a match for 'ifstream::basic_ifstream(string,_Iosb<int>::_Openmode)' |
|||
|
||||
mr.Anderson |
|
|||
![]() iOS Lead Developer ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3374 Регистрация: 20.12.2004 Где: далеко Репутация: 3 Всего: 128 |
Это речь о том, что нет конструктора класса ifstream с теми аргументами, которые заданы. В скобках может быть указано только имя файла.
|
|||
|
||||
_Natalia_ |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
А мона девченки тоже помогут?
попробуй так, просто конструктор ifstream берет как первый аргумент const char*, а не string, ну или в предыдущем ответе, просто сделай вот так
функция c_str() возвращает string в виде const char* |
||||
|
|||||
0lmer |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 3.12.2006 Репутация: нет Всего: -1 |
||||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 1 Всего: 50 |
Блин, вот что ночь в людьми делает ... Совсем забыл
PS. Опередили ![]() Добавлено через 1 минуту и 41 секунду 0lmer, У тебя путь из одного символа будет ![]() Это сообщение отредактировал(а) Xenon - 31.3.2007, 13:50 |
|||
|
||||
_Natalia_ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 31.3.2007 Репутация: нет Всего: нет |
можно, и это не говорит о размере массива, а только инициализирует указатель. в последствии он может содержать сколько угоодно элементов. если не кажется очень чистой эта записать, тогде делай char* newpath = new char[1024]; |
|||
|
||||
Xenon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 1 Всего: 50 |
Но тогда появится летучий голандец в виде одного элемента char
|
|||
|
||||
bloood |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 14.3.2007 Репутация: нет Всего: нет |
Блин у меня нет 100 постов, чтоб изменять репутацию, СПАСИБО ВАМ ВСЕМ ОГРОМНОЕ, всё работает как надо...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |