Code: char buff[256]; FILE * f; GetCurrentDirectory(256, buff); strcat(buff, "\\file.txt"); f = fopen(buff,"r"); if (f) { while(fgets(buff,255,f)) { printf("%s\n",buff); } fclose(f); }
slesh, спс. И последний вопрс (гна єти два часа)))) Хочу защитится от переполнения буффера. юзаю фгетс: Code: int main () { char buf[154]; fgets(buf,sizeof(buf),stdin); if(strcmp(LowerCase(buf),"help") == 0) { printf("%s","OK"); } system("pause"); return 0; } но из за этого строка не преобразовуеться в нижый регистер. как быть?
я вот юзаю самописную функцию для перевода буфера в нижний регистр. Понимает ткоа англ буквы Code: void my_LowCase(char * buf) { while (buf[0]) { if (buf[0]>='A' && buf[0]<='Z') { buf[0] += 32; } buf++; } return; } 2 -m0rgan- оформляй код в теги [ CODE ]
2slesh я почти тоже: Code: char * LowerCase(const char * Command) { int num = 0; char* buffer = (char *)malloc(strlen(Command) + 1); while (Command[num] != '\0') { buffer[num] = tolower(Command[num]); num++; } buffer[num] = '\0'; return (buffer); } Но суть не меняеться: Code: int main () { char buf[154]; gets(buf); if(strcmp(LowerCase(buf),"help") == 0) { printf("%s","OK"); } system("pause"); return 0; } пашет ок, а: Code: int main () { char buf[154]; fgets(buf,sizeof(buf),stdin); if(strcmp(LowerCase(buf),"help") == 0) { printf("%s","OK"); } system("pause"); return 0; } не приобразовует.
я могу добавить \n Code: int main () { char buf[154]; fgets(buf,sizeof(buf),stdin); strcat(buf,"\n"); if(strcmp(LowerCase(buf),"help") == 0) { printf("%s","OK"); } system("pause"); return 0; } тот же результат.
Доброе утро всем)) скажите пожалуйста, когда borland c++ 3.1 компилирует, он что использует 32 разрядный код?? просто у меня работает среда, но у меня windows sp2, а у друга у него sp3 и ему пишет ошибку: 16 разрядная подсистема ms-dos Процессор NTVDM обнаружил недопустимую инструкцию может ли это быть из за того что у него пак 3?
вообще старые достовские проги лучше запускай в DosBox. Потому что виндовый эмулятор доса очень сильно глючит. Она на разных компах с одной и тойже виндой может выдавать ошибку )
Добрый день, подскажите, как переводить строку в С++, интересует ВИН АПИ. char a[256] = "aaaa"; strcat(a,"\n"); ... DrawText(hdc,a,.........); В итоге выводит не ааа а а: ааа (ИЕРОГЛИФ) а как тогда перевести строку?
Добрый день. Как с помощю GetStockObject разместить на форме однооконного приложения картинку ? Или вообще как картинку разместить? КОД: Code: #include <windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static char szAppName[] = "HelloWin"; HWND hwnd; MSG msg; WNDCLASSEX wndclass; wndclass.cbSize = sizeof(wndclass); wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = WndProc; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance; wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); wndclass.hbrBackground =(HBRUSH) GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = NULL; wndclass.lpszClassName = szAppName; wndclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION); RegisterClassEx(&wndclass); hwnd = CreateWindow( szAppName, // window class name "The Hello Program", // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size NULL, // parent window handle NULL, // window menu handle hInstance, // program instance handle NULL ); // creation parameters ShowWindow(hwnd, iCmdShow); UpdateWindow(hwnd); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { HDC hdc; PAINTSTRUCT ps; RECT rect; switch(iMsg) { case WM_PAINT: hdc = BeginPaint(hwnd, &ps); GetClientRect(hwnd, &rect); DrawText(hdc, "Hello, Windows 95!", -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER); EndPaint(hwnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; } return DefWindowProc(hwnd, iMsg, wParam, lParam); }
BitBlt, StretchBlt, элемент управления Picture если задать ему через какое то из сообщений хэндл картинки для отображения.