Не происходит запись в файл - 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, чтобы указать, что она успешно завершилась.