Доброго времени суток!Начал изучать С++ ,сейчас учу тему массивы,и вот вроде бы все понятно,но в одном из кодов в книжке нет описания одной строчки,а вот зачем она тут сам ну никак понять не могу!подмогите пожалуйста)) Code: #include <iostream> using namespace std; char name[10][80]; // Массив имен служащих. char phone[10] [20]; // Массив телефонных номеров служащих. float hours[10]; // Массив часов, отработанных за неделю. float wage[10]; // Массив окладов. int menu(); void enter(), report(); int main() { int choice; do { choice = menu(); // Получаем команду, выбранную пользователем. switch(choice) { case 0: break; case 1: enter(); break; case 2: report(); break; default: cout << "Попробуйте еще раз.\n\n"; } }while(choice != 0); return 0; } // Функция возвращает команду, выбранную пользователем. int menu() { int choice; cout << "0. Выход из программы\n"; cout << "1. Ввод информации\n"; cout << "2. Генерирование отчета\n"; cout << "\n Выберите команду: "; cin >> choice; return choice; } // Функция ввода информации в базу данных. void enter() { int i; char temp[80]; for(i=0; i<10; i++) { cout << "Введите фамилию: "; cin >> name[i]; cout << "Введите номер телефона: "; cin >> phone[i]; cout << "Введите количество отработанных часов: "; cin >> hours[i]; cout << "Введите оклад: "; cin >> wage[i]; } } // Отображение отчета. void report() { int i; for(i=0; i<10; i++) { cout << name[i] << ' ' << phone[i] << '\n'; cout << "Заработная плата за неделю: "<< wage[i] * hours[i]; cout << '\n'; } } _________________ char temp[80]; - вот эта строка к чему она здесь?
Вообще, это объявление одномерного массива из char, в количестве 80 штук. В данном кодесе оно не нужно, т.к. нигде не применяется. Видимо авторы забыли убрать строчку, когда переделывали свой кодес. Так что просто забей и удали.
Понял спасибо))значит я на правильном пути,смотрю этот массив нигде не задействован,вот и засомневался.Просто смутило то что это книга самоучитель,думал там все примеры идеальны)
Здравствуйте. Знатоки помогите с функцией SHGetFileInfoW Ребят задача требует получить информацию об объекте файловой системы : файле, папке, диске. Для этого использую функцию SHGetFileInfoW - в хидере описание данной функции выглядит так : Code: SHSTDAPI_(DWORD_PTR) SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttributes, __inout_bcount_opt(cbFileInfo) SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags); SHSTDAPI_(DWORD_PTR) SHGetFileInfoW(LPCWSTR pszPath, DWORD dwFileAttributes, __inout_bcount_opt(cbFileInfo) SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags); Мой код , который выдает ошибку: Code: void __fastcall Twindowsnetrepository::FormCreate(TObject *Sender) { UINT SysImageList; TSHFileInfo SFI; // char patch = ''; ListView1->LargeImages = new TImageList(this); ListView1->SmallImages = new TImageList(this); //Запрашиваем большие иконки // SysImageList = SHGetFileInfo('', 0, &SFI, sizeof(SFI), SHGFI_ICON | SHGFI_SYSICONINDEX | SHGFI_LARGEICON); if (SysImageList != 0 ) { //Присваиваем системные иконки в ListViewl ListView1->LargeImages->Handle = SysImageList; ListView1->LargeImages->ShareImages = TRUE; } //Запрашиваем маленькие иконки SysImageList = SHGetFileInfoW(' ', 0, &SFI, sizeof(SFI),SHGFI_SYSICONINDEX | SHGFI_SMALLICON); if (SysImageList != 0) { //Присваиваем маленькие системные иконки в ListViewlОбзор дополнительных компонентов Delphi 323 ListView1->SmallImages->Handle = SysImageList; ListView1->SmallImages->ShareImages = TRUE; } } Компилятор ругается на первый параметр функции SHGetFileInfoW: LPCWSTR pszPath -" Character constant too long (or empty)". Как видно из сообщения компилятору не нравится "Длинная или пустая константа" - pszPath. Пробовал передавать явно через константу pszPath ,путь к файлу все равно ругается. Подскажите если сталкивались в чем тут загвоздка. Просмотрел исходники трех Filemanager без результатно , ответа на свой вопрос не нашел.Работаю в Builder.
Code: ListView1->SmallImages->Handle = SHGetFileInfo("", 0, &SFI, sizeof(SFI), SHGFI_SYSICONINDEX | SHGFI_SMALLICON); ListView1->LargeImages->Handle = SHGetFileInfo("", 0, &SFI, sizeof(SFI), SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
Только еще в первом параметре надо добавлять- L . Пример: Code: ListView1->LargeImages->Handle = SHGetFileInfo(L"", 0, &SFI, sizeof(SFI),SHGFI_SYSICONINDEX | SHGFI_SMALLICON); Так компилируется без ошибок компилятора.
Нужна доступная литература по созданию визуальных приложений на С++ в Visual Studio. Чтобы для полного нубаса было понятно.
Всем привет! Начал изучать С++. Вот интересно стало как можно реализовать брут вебморды какого либо сетевого устройства. Знающий народ, подскажите в каком направлении копать(какие библиотеки, по каким запросом корректнее нужно гуглить) и если есть что то рабочее, то хотелось бы для примера посмотреть исходники. Спасибо
Доброго дня, имеется переменная строка word = "%lol%goodword" в которой часть "%lol%" всегда присутствует, а "goodword" меняется и может быть чем угодно, каким образом можно отрезать часть "%lol%" от неё, а нужную часть "goodword" поместить обратно в переменную word, либо в другую
не совсем понял синтаксис мб, не вышло даже вывести на экран str из примера, задача такая: Code: username = "user"; fstream P; P.open("pass.txt"); while (!P.eof()) { P >> password;// например поток хавает строку password = "%username%123; if (strchr(password, '%') != NULL){ //тут надо отсечь от password часть "%username%" wsprintfA(password, "%s%s", username, password);// чтобы тут получить password = "user123" }
омг) Code: #include <iostream> #include <string> int main () { std::string str = "%lol%goodword"; str = str.substr(5, str.length()); std::cout << str << '\n'; return 0; } Еще можно так: Code: #include <iostream> #include <string> using namespace std; int main () { string password = "%lol%goodword"; password.erase(0,5); cout << password << '\n'; return 0; }
ровно так и делал, хз почему не получалось, надо было сразу код запостить, не успел сообразить, ща попробовал тоже самое + VS 2008 попросил еще добавить "stdafx.h" и всё норм стало...
Кажется, понял в чем проблема, но не понял как решить: Code: char username[24]; char password[24]; fstream U; U.open("user.txt"); U >> username;// например поток хавает строку username = "user; fstream P; P.open("pass.txt"); while (!P.eof()) { P >> password;// например поток хавает строку password = "%username%123; if (strchr(password, '%') != NULL){ string password1 = password; password1 = password1.substr(10, password1.length()); wsprintfA(password, "%s%s", username, password1); } При попытке вывода cout << "Get newpassword: " << password << "\n"; Вылетает При попытке записи password в файл, пишет только username, без password1 Подозреваю, проблема в последней строчке wsprintfA не может объединить в password две строки, мб потому что password1 получен через класс string, как можно их объединить?