Не происходит запись в файл - C (СИ) (79949)
Формулировка задачи:
первая программа,которая из 64 сс переводит в 2сс,все работает,после этого по желаению юзера,записывает результат в текстовоя файл,что и не просиходит,выводит тольо 0....или же 1..в чем проблема?
вотрая прогамма-гаоборот,переводит из2сс в 64сс...гемор в том что тоже выводит только 0...скажем записываю в консоли 11101101101101,это означает
#include <locale.h> #include <string.h> #include "windows.h" #include <stdio.h> #include <iostream> using namespace std; int main(){ SetConsoleCP(1251); SetConsoleOutputCP(1251); int i; char str[256]; char buf[80]; char url[256]; char yn[80]; FILE *f; i=0; cout<<"Введите текст:"; cin>>str; while(str[i]){ _itoa_s( (unsigned char)str[i], buf, 2); printf( "%s", buf ); i++; } printf( "\n" ); cout<<"Копировать результат в текстовой файл?Y\\N:"; cin>>yn; switch(yn[0]) { case 'y': cout<<"Введите URL адрес:"<<endl; cin>>url; f=fopen(url, "a"); fputs("Ваш текст:", f); fputs(str, f); fputs("\nТекст в двоичном системе:", f); fputs(buf, f); fputs("\n\n-----------------------\n\n", f); cout<<"Удачно сохранено!"; Sleep(1000); system("cls"); break; case 'n': main(); break; } main(); return 0; }
vm
,выводит только 0...если только букву m или же v написать,то выводит его код,заключение:программа переводит только одну буква,как исправить?#include "windows.h" #include <iostream> #include <string> using std::cin; using std::cout; using std::endl; using std::string; int main() { string str; cin >> str; //////////////////////////////////////SYMBOLS if ( str == "1100000" ) cout << '`'; else if ( str == "1111110" ) cout << '~'; else if ( str == "101101" ) cout << '-'; else if ( str == "111101" ) cout << '='; else if ( str == "1000000" ) cout << '@'; else if ( str == "100011" ) cout << '#'; else if ( str == "100100" ) cout << '$'; else if ( str == "100101" ) cout << '%'; else if ( str == "1011110" ) cout << '^'; else if ( str == "100110" ) cout << '&'; else if ( str == "101010" ) cout << '*'; else if ( str == "101000" ) cout << '('; else if ( str == "101001" ) cout << ')'; else if ( str == "1011111" ) cout << '_'; else if ( str == "101011" ) cout << '+'; else if ( str == "111100" ) cout << '<'; else if ( str == "111110" ) cout << '>'; else if ( str == "101100" ) cout << ','; else if ( str == "101110" ) cout << '.'; else if ( str == "111111" ) cout << '?'; else if ( str == "101111" ) cout << '//'; else if ( str == "1111011" ) cout << '{'; else if ( str == "1011011" ) cout << '['; else if ( str == "1111101" ) cout << '}'; else if ( str == "101011" ) cout << ']'; else if ( str == "111010" ) cout << ':'; else if ( str == "111011" ) cout << ';'; else if ( str == "100010" ) cout << '\"'; else if ( str == "100111" ) cout << '\''; //////////////////////////////////////NUMBERS if ( str == "110001" ) cout << '1'; else if ( str == "100001" ) cout << '!'; else if ( str == "110010" ) cout << '2'; else if ( str == "110011" ) cout << '3'; else if ( str == "110100" ) cout << '4'; else if ( str == "110101" ) cout << '5'; else if ( str == "110110" ) cout << '6'; else if ( str == "110111" ) cout << '7'; else if ( str == "111000" ) cout << '8'; else if ( str == "111001" ) cout << '9'; else if ( str == "110000" ) cout << '0'; //////////////////////////////////////БУКВЫ большие else if ( str == "1010001" ) cout << 'Q'; else if ( str == "1010111" ) cout << 'W'; else if ( str == "1000101" ) cout << 'E'; else if ( str == "1010010" ) cout << 'R'; else if ( str == "1010100" ) cout << 'T'; else if ( str == "1011001" ) cout << 'Y'; else if ( str == "1010101" ) cout << 'U'; else if ( str == "1001001" ) cout << 'I'; else if ( str == "1001111" ) cout << 'O'; else if ( str == "1010000" ) cout << 'P'; else if ( str == "1000001" ) cout << 'A'; else if ( str == "1010011" ) cout << 'S'; else if ( str == "1000100" ) cout << 'D'; else if ( str == "1000110" ) cout << 'F'; else if ( str == "1000111" ) cout << 'G'; else if ( str == "1001000" ) cout << 'H'; else if ( str == "1001010" ) cout << 'J'; else if ( str == "1001011" ) cout << 'K'; else if ( str == "1001100" ) cout << 'L'; else if ( str == "1011010" ) cout << 'Z'; else if ( str == "1011000" ) cout << 'X'; else if ( str == "1000011" ) cout << 'C'; else if ( str == "1010110" ) cout << 'V'; else if ( str == "1000010" ) cout << 'B'; else if ( str == "1001110" ) cout << 'N'; else if ( str == "1001101" ) cout << 'M'; //////////////////////////////////////БУКВЫ МАЛЕНЬКИЕ else if ( str == "1110001" ) cout << 'q'; else if ( str == "1110111" ) cout << 'w'; else if ( str == "1100101" ) cout << 'e'; else if ( str == "1110010" ) cout << 'r'; else if ( str == "1110100" ) cout << 't'; else if ( str == "1111001" ) cout << 'y'; else if ( str == "1110101" ) cout << 'u'; else if ( str == "1101001" ) cout << 'i'; else if ( str == "1101111" ) cout << 'o'; else if ( str == "1110000" ) cout << 'p'; else if ( str == "1100001" ) cout << 'a'; else if ( str == "1110011" ) cout << 's'; else if ( str == "1100100" ) cout << 'd'; else if ( str == "1100110" ) cout << 'f'; else if ( str == "1100111" ) cout << 'g'; else if ( str == "1101000" ) cout << 'h'; else if ( str == "1101010" ) cout << 'j'; else if ( str == "1101011" ) cout << 'k'; else if ( str == "1101100" ) cout << 'l'; else if ( str == "1111010" ) cout << 'z'; else if ( str == "1111000" ) cout << 'x'; else if ( str == "1100011" ) cout << 'c'; else if ( str == "1110110" ) cout << 'v'; else if ( str == "1100010" ) cout << 'b'; else if ( str == "1101110" ) cout << 'n'; else if ( str == "1101101" ) cout << 'm'; cout << endl; system("pause"); main(); return 0; }
Решение задачи: «Не происходит запись в файл»
textual
Листинг программы
int main() { string str; // создаём строку для получения данных с консоли string temp=""; // строка - буфер int counter=0; // счётчик слов. инициализируем 0 cin >> str; // получаем строку while (str.size()>=7*(counter+1)) { // пока размер строки больше чем (размер слова умножить // номер выделяемого слова) (7*(counter+1)) // выделить подстроку из 7 символов, начиная с 7*counter символа temp=str.substr(7*counter,7 ); Analysis(temp); // проверить слово и вывести слово (там тока твой код) counter++; // инкрементируем счётчик == переходим к следующему слову } system("pause"); // вывели дежурную фразу main(); // новая итерация return 0; }
Объяснение кода листинга программы
В этом коде:
- Создаётся строка
str
для получения данных с консоли. - Создаётся строка
temp
для использования в качестве буфера. - Инициализируется переменная
counter
со значением 0. - Получается строка
str
. - В цикле
while
проверяется, достаточно ли размера строкиstr
для выделения подстроки размером 7 символов, начиная с 7-кратного размераcounter
. - Если условие выполняется, то выделяется подстрока
temp
размером 7 символов, начиная с 7-кратного размераcounter
. - Функция
Analysis
вызывается для проверки и вывода словаtemp
. - Переменная
counter
инкрементируется, чтобы перейти к следующему слову. - По завершении цикла программа выводит дежурную фразу и делает новую итерацию, вызывая
main()
. - Программа возвращает 0, чтобы указать, что она успешно завершилась.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д