Ответить на сообщение
Вернуться к теме
Вы отвечаете на сообщение:
Автор: shtirlitz (15.11.2008 в 11:10) Всем привет! Ситуация следующая, не срабатывает cin.getline, т.е. программа вместо того чтобы остановится, для ввода данных, просто переходит на следующую строку. Но если убрать строки
cin.getline(q,2); p=q[0]-'0';
for (i=0; i<25; i++) { if (key[0]==Alfa[i]) {p=i; break;} }
#include <iostream.h> #include <string.h> #include <windows.h> char bufRus[256]; char* Rus(const char* text); char* Rus(const char* text) { CharToOem(text, bufRus); return bufRus; } main() { char Alfa[25]={'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'} ; char beta[25]; char key[25]; int k; int p; char q[2]; char A[1000]; int i=0, j=0, z=0; cout<<Rus("Введите ключ:")<<endl; cin.getline(key, 25); //определение длины ключа for (i=0; i<25; i++) { if (key[i]=='\0') {k=i; break;} } //вводим позицию начала записи ключа cout<<Rus("Введите p: ")<<endl; cin.getline(q,2); p=q[0]-'0'; //определение позиции начала записи ключа // for (i=0; i<25; i++) // { // if (key[0]==Alfa[i]) {p=i; break;} // } //записываем ключ в новый массив for (i=p, j=0; i<p+k; i++, j++) { beta[i]=key[j]; } //заполнение шифрованного масива остальными буквами после конца ключа for (i=p+k, j=0; i<25; i++, j++) { for (z=0; z<k; z++) if (Alfa[j]==key[z]) {j++; z=0;} beta[i]=Alfa[j]; } //заполнение шифрованного массива перед началом ключа for (i=0, j=j-1; i<p; i++, j++) { for (z=0; z<k; z++) if (Alfa[j]==key[z]) {j++; z=0;} beta[i]=Alfa[j]; } for (i=0; i<25; i++) cout<<Alfa[i]<<" "; cout<<endl; for (i=0; i<25; i++) cout<<beta[i]<<" "; cout<<endl; cout<<Rus("Введите строку для шифрования:")<<endl; cin.getline(A,1000); cout<<Rus("Зашифрованный текст")<<endl; for (i=0; i<1000; i++) { if (A[i]=='\0') break; if (A[i]==' ') continue; for (j=0; j<25; j++) { if (A[i]==Alfa[j]) { A[i]=beta[j];break; } } } for (i=0; i<1000; i++) { if (A[i]=='\0') break; cout<<A[i]; } cout<<endl; return 0; }
Ваше имя:
Пароль:
Цитировать Используйте тэги для выделения текста: Код: [code][/code] Жирный: [b][/b] Наклонный: [i][/i] URL: [url][/url]
Сообщение:
Прикрепить: