我正在尝试从文件中读取字符并在删除标点符号后。我想将单词存储在一个数组中,最后将它们写入另一个文件。该文件的内容是:-
“ यौताबाबूउदयभाहूउपेक्षाऔंरअपमान्नकीपीड््ाढोये जैसेतैस्येवहबाबाकेआश्रमम्पेंपहैचगया 。बाबामान्नोउसीकीप्रतीक्षाम्पेंवैठेथे。वहज्योहीदण्डवतकीमुदाम्पेंहुभ्रात्योंही बाबाकागभ्रीरस्वरउसकेकानोंम्पेटकराया 'आभ्रो,ञैंतुम्हारेलिएहीबैठाहूें 'अमितन्नेमस्तकऊैंचाउठायाऔंरएकाम्रभाव न्सेबाबाकोदेखतारहा 。बाबाकेपासवहअनेकोंबारआचुका थापरन्तु 。आजजैसीव्यथा,थकान्नऔंरप्तानताइससेदूर्वनहींथीआदमी कभ्रीकभीइतनाटूटञाताड़ँकिठसेअपनेअस्तिल्दकेप्रति भलगतीलगतीलगतीवहवहखोपेंपेंपेंखोउसकेउसकेउसकेकौकौकौकौहेहेहेहेथेथे ...........
我尝试使用旧的 turbo c++ 读取这些字符(印地语 - 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();
}