Code: #include <stdio.h> main() { int c, nl, t, space, n, i, l; int array[100]; nl = c = t = space = n = 0; for (i = 0; i < 100; ++i) { array[i] = 0; } i = 0; while ((c = getchar()) != EOF) { if (c = '\n') { printf("\n\tSymbol: "); for (l = 0; l < i; ++l) { printf("%d ", array[l]); } printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n); break; } else if (c = '\t') { ++t; } else if (c = ' ') { ++space; } else if (c >= '0' && c <= '9') { ++n; } else { array[i] = c; ++i; } } } Все открылся нормлально. Открывал с помощью блокнота, а в FreeBSD узал ee редактор. Может ксе так кто нибудь поможет найти ошибку? p.s. сразу говорю узаю компилятор cc на крайний случай могу попробывать gcc.
Я не совсем понял что этот код делает. Что тебе нужно, считать сколь букв, цифр символов табуляции и новой строке, есть в строке?
ггг, процедур, как насчет того, чтобы внутри ифа поставить сравнение, а не присваивание? Code: if (c [COLOR=Red]==[/COLOR] '\n') { и т.д.
Chuvaki pishu s brausera lynx, ppc. Spasibo bolshoe vse rabotaet. Scha zaidu s norm brausera + kinu. =)
Подскажите, пожалуйста, как создавать файл в текущей директории. Пробовал GetCurrentDir, но что то с типами переменных не выходит - char- Ansi + знак "\" надо два раза указывать. Пока юзаю стандартную процедуру. Но хотелось бы 1. Выдается окно SaveDialog в текущей директории. 2. Файл без запроса создается в текущей директории.
>> Подскажите, пожалуйста, как создавать файл в текущей директории. Просто без указания полного пути. Только имя файла. Будет создан в дирректории запуска программы.
.Slip, спасибо. Попробую. Программку пишу _http://ifolder.ru/6903178 Стоит ее постить на ачате (есть на граббе и асечке)? Если да, то в каком разделе?
>> Подскажите, пожалуйста, как создавать файл в текущей директории fopen("filename", "wb"); уже не катит?
Погляди какая у тебя текущая директория (GetCurrentDirectory) после запуска экзешника. Если всё нормально запускаешь, то вызов fopen должен создавать файл в текущей директории... Или покажи весь исходник... Если запускаешь из под студии, то там текущая директория будет не директория экзешника, а директория проекта... В общем побольше описалова скинь, или исходник покажи...
groundhog Пишу на C++Builder 6.0. Домой приду - попробую что насоветовали. Останутся вопросы - позадаю. Спасибо.
Code: BOOL GetFile (HINTERNET IN hOpen, // Handle from InternetOpen() CHAR *szUrl, // Full URL CHAR *szFileName) // Local file name { DWORD dwSize; CHAR szHead[] = "Accept: */*\r\n\r\n"; VOID * szTemp[25]; HINTERNET hConnect; FILE * pFile; if ( !(hConnect = InternetOpenUrl ( hOpen, szUrl, szHead, lstrlen (szHead), INTERNET_FLAG_DONT_CACHE, 0))) { cerr << "Error !" << endl; return 0; } if ( !(pFile = fopen (szFileName, "wb" ) ) ) { cerr << "Error !" << endl; return FALSE; } do { // Keep coping in 25 bytes chunks, while file has any data left. // Note: bigger buffer will greatly improve performance. if (!InternetReadFile (hConnect, szTemp, 50, &dwSize) ) { fclose (pFile); cerr << "Error !" << endl; return FALSE; } if (!dwSize) break; // Condition of dwSize=0 indicate EOF. Stop. else fwrite(szTemp, sizeof (char), dwSize , pFile); } // do while (TRUE); fflush (pFile); fclose (pFile); return TRUE; } Чуваки, у меня вывод в поле Symbol: в цифрах, я так понял в кодах ANSI. А можно ли сделать чтоб вывод был в символах которые я ввел?
Code: #include <stdio.h> main() { int c, nl, t, space, n, i, l; int array[100]; nl = c = t = space = n = 0; for (i = 0; i < 100; ++i) { array[i] = 0; } i = 0; while ((c = getchar()) != EOF) { if (c = '\n') { printf("\n\tSymbol: "); for (l = 0; l < i; ++l) { printf("%d ", array[l]); } printf("\n\tTab: %d\n\tSpace: %d\n\tNumber: %d\n", t, space, n); break; } else if (c = '\t') { ++t; } else if (c = ' ') { ++space; } else if (c >= '0' && c <= '9') { ++n; } else { array[i] = c; ++i; } } } БЛин чуваки я дурак, не тот код скопировал. В этом подскажите пожалуйста в чем может быть проблема. После Symbol: выдаются цифры вместо букв.
z01b-> когда я только дошел до циклов в книге, у меня была задачка скопировать входной поток в выходной с фильтрацией символов. Я ее так и не смог не применяя функций (кроме getchar) и массивов решить, сейчас хотяб так постараюсь решить. Только не помогайте чуваки плиз, если что я вопрос сам задам. Я хочу сам сделать))) Потом постепенно буду добавлять в эту задачку новые упражнния усложняя ее все более и более.
еще вопрос, а как мне нужно полностью массив в char переделать? int array[100]; переделать вот так: char array[100];
да.... самое главное будет приведенье к типу char если с=getchar() целое занимающее 2 байта то получить код символа отбросив старший байт можно array[index]=(char )c;