C++ :: Translate Char Array From (Russian Code) To Unicode?
Feb 10, 2012How translate char array from "MS-DOS Codepage 866" (Russian code) to Unicode?
View 3 RepliesHow translate char array from "MS-DOS Codepage 866" (Russian code) to Unicode?
View 3 RepliesI'm looking to translate say the standard code for 4 which is 52 to the integer 4 is that possible with a build in function i C?
View 5 Replies View RelatedI have some code that was compiled without Unicode turned on in the Preprocessor Definitions. I need to access an API that had Unicode turned on in the Preprocessor Definitions (I believe that it is on by default for DLL's) .
I need to call a function in the DLL that requires a structure like:
struct READERINFO {
TCHAR serial[32];
TCHAR altSerial[32];
TCHAR name[32];
TCHAR fccId[48];
TCHAR hwVersion[16];
int swVerMajor;
int swVerMinor;
char devBuild;
};
It returns some information in the structure some of it is Unicode based however the program that is calling it is not Unicode. The preprocessors are not turned on because if they were there would be a lot of things to change in this code. The code is old code that I inherited and now I must interface to some new devices.
I declare my structure as :
READERINFO info; Then I call the function in the DLL which looks like: ApiGetReaderInfo(hAPI, &info, sizeof(into));
Which is defined as:
ApiGetReaderInfo(HANDLE hApi,
Struct READERINFO * ri,
DWORD riSize);
Parameters:
hApiHandle to valid Api object instance
riPointer to the READERINFO structure.
riSizeSize of ri structure in bytes. Usually: sizeof(struct READERINFO).
When I call it from my program that does not have UNICODE defined in the Pre-Processors I get :
Characters like : ÌÌÌÌÌ in the TCHAR fields and invalid numbers in the integer fields.
int ModuleVersion(HANDLE hApi) {
struct READERINFO info;
ApiGetReaderInfo(hApi, &info, sizeof(info));
[Code] ....
When I call it from my program that has some sample code just for this and has the UNICODE defined in the Preprocessors it works just fine. how I can call this from my old code and get the correct information. I have already tried to do the follow without success:
int ModuleVersion(HANDLE hApi) {
#define UNICODE
struct READERINFO info;
#undef UNICODE
ApiGetReaderInfo(hApi, &info, sizeof(info));
[Code] .....
I'm quite new to openMP, mostly used pthreads and mpi before. Now I like to tinker a bit with openMP, but haven't found any good docs, reference list or similar.
What's the equivalent to pthread's mutex lock in openMP?
Code:
#pragma omp parallel for
for(i=0; i<n ; i++){
// Do something intelligent...
// If needed handle a shared variable.
}
How do I protect the shared variable?
I'm doing a code to calculate the final grade of students. This is a work for college, and I need to keep this structure.
My problem is that last scanf, it is ignored when I compile the code. It "works" if I try to scan a string, float or int.
Code:
#include <stdio.h>
#include <stdlib.h>
void nfinal(float NOTA1,float NOTA2,float NOTA3,char MEDIA){
int NOTA;
if(MEDIA=='A'){
NOTA=(NOTA1+NOTA2+NOTA3)/3;
[Code]....
I have the following code that prints out only the first char of each string. Why does it not print out the entire unsgined char* ?
Code:
#include <iostream>
#include <vector>
using namespace std;
void PrintVector(vector<unsigned char*>& data) {
for(size_t i = 0; i < data.size(); i++)
[Code] .....
Code:
#include <iostream>
using namespace std;
int main () {
char character = 'a';
[Code] .....
the point of this code is to increase character by 1 (so from a to b in this case).
The line highligted in red is the line that the system is rejecting at the moment (but there may be other issues). why it is invalid?
I've tried a bunch of alternative methods to prevent an assertion error. "not understanding" the bug and why I'm getting it are relevant here, not proper, (or more appropriate), coding methods. I would write it in another way to prevent the error, I simply want to understand what is happening during run-time that causes the situation.What is the bug?
---------------------------------------
[assertion error]
[expression _block_type_is_valid(phead->nBlockUse)]
--------------------------------
Code:
#include <iostream>
#include <string>
using namespace std;
int main() {
cout << "Enter your name : ";
string Name;
[code]...
I have assignment which requires me to print out and array code and a pseudo code. I dont no what a pseudo code is,.
View 2 Replies View RelatedI've made a code to check whether or not a save file has been created correctly, but for some reason it always returns this line: readdata[qa]=='1' as true. in which qa is the counter I use in a for loop and readdata is a character array consisting of 50 characters that are either 0, 1 or 2.
this is the entire code:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
[Code]....
at first is also went wrong at line 22 and also returned that as true, but then I added brackets and it worked.
I am trying to concatenate two words from a file together. ex: "joe" "bob" into "joe bob". I have provided my function(s) below. I am somehow obtaining the terminal readout below. I have initialized my memory (I have to use dynamic, dont suggest fixing that). I have set up my char arrays (I HAVE TO USE CHAR ARRAYS (c-style string) DONT SUGGEST STRINGS) I know this is a weird way to do this, but it is academic. I am currently stuck. My file will read in to my tempfName and templName and will concatenate correctly into my tempName, but I am unable to correctly get into my (*playerPtr).name.
/* this is my terminal readout
joe bob
<- nothing is put into (*playerPtr).name, why not?
joe bob joe bob
seg fault*/
/****************************************************************/
//This is here to show my struct/playerInit
[Code]....
I need to do a function that copy every word from a text to a char word. How can i do it?
View 5 Replies View RelatedI'm working on this program that I have to design a class Numbers that can be used to translate whole numbers to the English description of the number.
Now this is what I got so far:
#include <iostream>
#include <string>
using namespace std;
class Numbers {
private:
int number;
static string ones[];
static string tens[];
[Code] ....
The program seems to work. However its not giving me the right number description,
Example:
Please enter the amount you would like translated into words: 5
six dollars
please enter another number: 10
eleven dollars
please enter another number: 20
thirty dollars
please enter another number: 30
forty dollars
please enter another number: 100
two hundred dollars
please enter another number: 150
two hundred sixty dollars
please enter another number: 500
six hundred dollars
please enter another number: 1000
two thousand dollars
please enter another number:
I wrote this simplified version of a program i am writing that parses data in UDP packets. In the process of doing so i pretty much answered all my questions and fix all the problems i was having.
decodeSystemMap function will be in loop, and will proccess packets that have mostly the same data, only a few items will be added or changed or deleted.
whats the best way to check if there are any new, deleted, or removed items in the packet and only modify those?
Is there anything unsafe / dangrous about the way the code is now?
Code:
/* * File: main.c
* Author: david
*
* Created on May 23, 2013, 11:57 AM
*/
#include <stdio.h>
#include <stdlib.h>
[Code] ....
I'm trying to have a button marked by the sqrt sign, '√'.
I wrote below code and typed that sign by holding down "alt" and typing 251 using numpad. But result is the question mark instead of sqrt mark!
My machine is Windows 7 x86 and IDE is visual studio 2012.
#include <GUI.h>
using namespace Graph_lib;
//---------------------------------
class Test : public Window {
public:
Test(Point, int, int, const string&);
[Code] .....
I have the following code which attempts to assign a u_int8 array of 256 to an unsigned char[256]:
Code:
unsigned char testData[256]=pSample->data;
I get the compilation error:
error C2440: 'initializing' : cannot convert from 'const uint8_t [256]' to 'unsigned char [256]'
What is the safe way to cast or convert here?
You told me that it's better to use UNICODE all the time.
What if the Win32 Api function doesn't have a UNICODE version.
For example CryptProtectData() takes a BYTE (DATA_BLOB *) which is an unsigned char?
[Code] ......
I want to print out unicode characters. But I want to do this using the key ids. Example:
int main()
{
std::cout << ('124'); //I would like this to output '|'
}
I'm writing a school assignment that writes/reads user input into and out of a binary file.
I've gotten the write part to work, but now I need to be able to read that file back in and display it as a string.
I think I should be using fread() and read my file into an array of int's right? But when I try printing out that array I get a whole bunch of numbers that don't match the hex code in my file.
How do I read in a binary file and print it out as a string?
For example if using FindFirstFile(...) it assumes your passing LCPWSTR and not LPCSTR.
I know I can use FindFirstFileA or FindFirstFileW so what is point of default if always UNICODE.
Which brings to my second question. If I say
FindFirstFile("C:", &fdat);
I get error cannot convert parameter 1 from 'const char [7]' to 'LPCWSTR'
I could say WCHAR fName = "C:"; and pass this variable instead. However is there a way to cast "C:" on-the-fly to LPCWSTR, I tried,
FindFirstFile((LCPWSTR)"C:", &fdat);
But it outputs a stream of LONGs to the console instead of filenames.
I have a problem when i try to save unicode to a .txt file.
I need to store in a file names that will have letters like "ăĂâÂșȘțȚîÎ"
wchar_t name []=L"ăĂâÂșȘțȚîÎ";
FILE* fang;
fang= _wfopen( L"test.txt",L"wt+,ccs=UNICODE");
fwprintf (fang, L"%ls ",name);
When i open my text file i get this: ??âÂ????îÎ
if i use
fang=fopen("test.txt","a");
I get the same result
and for
fang=fopen("ang.txt","a,css=UNICODE");
I get a runtime eroror "invalid file open mode"
I need to read Unicode characters from a file. The only thing I need to do from them is to extract their Unicode number.
For example if file has u I need to extract its corresponding Unicode number.
I'm having some problems in receiving fileNames from Server to Client(C++) in Mac OS X. I send a serialized object , which has a char pointer with the fileName or sometimes a string object, when i receive it in the client, it seems to be having %F6 or %E9 ,etc . This issue don't arise in Windows OS though, even thought it's the same code. Is there anyway decoding these '%' characters back to their original form in Mac OS & Linux ..?
Fex characters i got into problems with : ǡ ȅ ȉ
It would be difficult to change the code in server, so if there's a way decoding the characters back to its original form, it would be easier.I'm using Boost Library for Serialization and i'm just looking for ways to decode %F6 back to ȅ in C++, like if some library is available ..?
I had a file which has name like SIRAO.wav Since this file name has special unicode character all file API's are failed.
I would like to rename this file using Windows API. How can achieve this?
std::string filename variable hold this value as SIRÃO.wav.
I try to read the file using file API after perform a conversion.
Code:
const int utf16_length = MultiByteToWideChar(CP_UTF8,0,filename.data(),filename.length(),NULL,0);
std::wstring utf16;
utf16.resize(utf16_length);
MultiByteToWideChar(CP_UTF8,0,filename.data(),filename.length(),&utf16[0],utf16.length());
const wchar_t *name = utf16.c_str();
rename the file with unicode character?
Is there any open sources available to do the conversion from UTF8 to Unicode(16-bit) and vice versa..
Also i would like to know how can i integrate that library with my code.
I am trying to write data in Russian language to the serial (RS-232) port. My display device is already set to that character code page.
But output on the device is not exactly what I require.
My code snippet is like this below
CString pBuffer = L"английский"; //Russian Language
LPBYTE pByte = new BYTE[pBuffer.GetLength() + 1];
memcpy(pByte, (VOID*)LPCTSTR(pBuffer), pBuffer.GetLength());
long nBuffer=pBuffer.GetLength()+1;
DWORD dwWritten=0;
WriteFile(pHandle , pByte, nBuffer ,&dwWritten , NULL);
pHandle is a valid handle.