ファイルから文字を読み込もうとしていますが、句読点を削除しました。単語を配列に格納し、最後に別のファイルに書き込みたいです。ファイルの内容は次のとおりです:-
「यौताबाबूउदयभाहूउपेक्षाऔंरअपमान्नकीपीड््ाढोये जैसेतैस्येवहबाबाकेआश्रमम्पेंपहैचगया 。बाबामान्नोउसीकीप्रतीक्षाम्पेंवैठेथे。वहज्योहीदण्डवतकीमुदाम्पेंहुभ्रात्योंही बाबाकागभ्रीरस्वरउसकेकानोंम्पेटकराया 「आभ्रो、ञैंतुम्हारेलिएहीबैठाहूें 'अमितन्नेमस्तकऊैंचाउठायाऔंरएकाम्रभाव न्सेबाबाकोदेखतारहा 。बाबाकेपासवहअनेकोंबारआचुका थापरन्तु 。आजजैसीव्यथा、थकान्नऔंरप्तानताइससेदूर्वनहींथीआदमी कभ्रीकभीइतनाटूटञाताड़ँकिठसेअपनेअस्तिल्दकेप्रति भ्रीशंकाहोन्नेलगतीन्हैवहअनेकविचारों म्पेंखोगयाउसकेनेत्रबाबाकौदेखरहेथेपरन्तुउस्यकामनकहींऔंरभ्रटकरद्दाथा 。」.......。
古いturboc++を使用してこれらの文字(ヒンディー語--utf-8)を読み取ろうとしました。単純なcharデータ型を使用します。
プログラムはコンパイルされましたが、内容がファイルに正しく書き込まれていませんでした。次に、同じコードを使用してVisual C ++で同じコーディングを使用しましたが、エラーが発生しました-
"Debug assertion failed ... unsigned(c+1) <=256"
次に、この目的でワイド文字のデータ型を使用してみました。using<wchar.h>
および<cwchar.h>
ヘッダーファイルとデータ型wchar_tおよびその他のワイド文字関数ですが、出力は適切ではありません- "���त�ྤ���ྤ�"
この問題を解決するための代替手段または他の方法はありますか?
完全なコードセグメントで答えてください。また、wcharのgetline関数の代替手段を教えてください。これは私がやろうとしたことです...
#include<sstream>
#include<iostream>
#include<fstream>
#include<ctype.h>
#include<string>
#include<stdio.h>
#include<conio.h>
#include <istream>
#include<vector>
#include<string>
#include<stdlib.h>
#include<iostream>
#include<fstream>
#include<ctype.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
#include<vector>
#include<wchar.h>
#include<cwchar>
#include <locale.h>
#include <cwchar>
using namespace std;
unsigned char line[1000],storech[2000],storech1[20000];
wchar_t word[50];
std::vector< wchar_t* > storewrd;
void main()
{
FILE * file3 = fopen("H:\\myfile.txt" , "w");
cout << "check" << endl;
FILE *stream;
stream = fopen( "H:\\ocr.txt", "r" );
setlocale(LC_ALL,"");
int ch;
int test;
wchar_t temp1;
wchar_t buffer[500];
wchar_t temp[500];
int x=0,j=0;
do
{
int loop = 0;
ch = fgetwc(stream);
//read word
while( (ch != '\n') && (ch != WEOF) )
{
buffer[loop] = ch;
loop++;
test = fgetwc(stream);
temp1 = (wchar_t) test;
if(!iswpunct(test))
fputwc( test , file3);
wcout << temp1 << " ";
}
int t;
if (ch!= WEOF)
{
for(t=0;t<loop;t++)
{
temp[t] = buffer[t];
}
temp[loop++] = '\0';
j++;
//cout << buffer[loop] << " ";
}
}while(ch != WEOF);
cout << "check";
_getch();
}