Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2012, 21:42   #1
Sobaka_ru
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 44
По умолчанию Кодировка текстового файла

Задание на СИ: имеется текстовый файл, определить его кодировку.
Вот нашел програмку, но как ее проверить, рабочая или нет???
Когда проверяю пишет типа файл не найден..
Код:
#include "stdafx.h"
#include <conio.h>
#include <cstdio>
#include <iostream>
using namespace std;

//=================================================
// Cp866.
bool Cp866(int g)
{
 const int x1 = 128, x2 = 175,
		   x3 = 224, x4 = 241;
 
 if( (g >= x1 && g <= x2) || (g >= x3 && g <= x4) ) return true;
 else return false;
}
//=================================================
// Windows - 1251.
bool K1251(int g)
{
 const int x1 = 168, x2 = 184,
		   x3 = 192, x4 = 255;
 
 if( (g == x1) || (g == x2) || (g >= x3 && g <= x4) ) return true;
 else return false;
}
//=================================================

int main()
{
 setlocale(LC_ALL, "Russian");
 //unsigned char ch;
 int ch;
 int g;
 int countC = 0,
     countK = 0;
  
 FILE *fin = fopen("C:\\Users\\1\\Documents\\Visual Studio 2008\\Projects\\0001)\\kodirovka\\Debug\\input.txt", "r");
 if(fin != NULL)
  while((ch = fgetc(fin)) != EOF)
  {
   //printf("%c", ch);
   putchar(ch);
   g = ch;
   //cout << g << "\n";
   if(Cp866(g)) countC++;
   if(K1251(g)) countK++;
  }
 else
  cout << "File is not found.";

 fclose(fin);
 fin = NULL;

 cout << "\n\n" << "Cp866: " << countC << "  ;  " << "Windows 1251: " << countK;
 cout << "\n\n\n";

 if(countC > countK)
  cout << "Кодировка - Cp866";
 else if(countK > countC)
  cout << "Кодировка - Windows 1251";
 else
  cout << "Нет символов различных диапазонов";
  
 _getch();	
 return 0;
}

Последний раз редактировалось Sobaka_ru; 24.01.2012 в 21:45. Причина: ПоFILE *fin = fopen("C:\\Users\\1\\Documents\\Visual Studio //В этом же дело?
Sobaka_ru вне форума Ответить с цитированием
Старый 24.01.2012, 21:49   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Код:
FILE *fin = fopen("C:\\Users\\1\\Documents\\Visual Studio 2008\\Projects\\0001)\\kodirovka\\Debug\\input.txt", "r");
Пропиши сюда путь к файлу.
Все тривиальное просто
whatever вне форума Ответить с цитированием
Старый 25.01.2012, 00:18   #3
Sobaka_ru
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 44
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
Код:
FILE *fin = fopen("C:\\Users\\1\\Documents\\Visual Studio 2008\\Projects\\0001)\\kodirovka\\Debug\\input.txt", "r");
Пропиши сюда путь к файлу.
Я понял уже но все равно спасибо
Sobaka_ru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из текстового файла в бд!!! Poltev86 БД в Delphi 5 16.05.2010 23:18
Кодировка файла darel Общие вопросы .NET 2 26.04.2010 15:52
Кодировка файла Lemo Общие вопросы Delphi 3 15.01.2010 22:38
Кодировка файла zver777 Общие вопросы Delphi 1 23.08.2009 15:26
Кодирование текстового файла milate Паскаль, Turbo Pascal, PascalABC.NET 2 24.03.2009 13:00