需要帮助将java转换为c ++ [英] need help converting java to c++

查看:54
本文介绍了需要帮助将java转换为c ++的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,

i有一个java应用程序,用于构建特定文件格式的xml

,反之亦然。

我已经被要求将其转换为c ++,但我不是c ++的专家,

实际上我只是初学者你可以说。

i虽然有几个问题:

1-是否有任何等同于java'的流

类(ByteArrayInputStream,InputStreamRedare,Dat aInputStream ..)

2-如何打开一个在c ++中的字节(char)数组上流,以便
将其作为文本读取。我有一个字节数组,我需要从中删除一些字节

然后将其传递给文本流。

3-我知道字符串以''\结尾0''c ++中的空字符。

fil我要解析,xml-to-be-elements用''\0''分隔,怎么可以

i将读取的文本拆分为字符串,使用''\0''作为我的分隔符,而不是让b / b混淆c ++。

4-最重要的:如何解析和用c ++构造xml,

那里有api for which以及在哪里找到它?

5-最后一个坚果不是最不重要的,因为我的目标是Windows,它会是什么? />
更好地使用非托管Visual C ++。它是否有类型我需要b $ b寻找,并且它能否轻松完成任务?

哦,我使用g ++ for windows。

谢谢

问候

hello,
i have a java app that constructs an xml from a specific file format
and vice versa.
i''ve been asked to convert it to c++, but im not an expert in c++,
actually im mere beginner you can say.
i got a couple of questions though:
1- is there any equivalent to java''s Stream
classes(ByteArrayInputStream,InputStreamRedare,Dat aInputStream ..)
2- how to open a stream on a byte ( char) array in c++ in order to
read it as text. i have a byte array i need to strip off some bytes
from and then pass it to a text stream.
3- i know strings are ended in ''\0'' the null character in c++.in the
fil i want to parse, xml-to-be-elements are separated by ''\0'', how can
i split the read text into strings using ''\0'' as my delimiter without
confusing c++.
4- the most important : how to parse and construct xml in c++, is
there any api for that and where to find it?
5- last nut not least , since im targetting Windows , would it be
better to use unmanaged Visual C++ . does it have the types i am
looking for,and does it make it easy to accomplish the task ?
oh and i use g++ for windows.
Thanks
regards

推荐答案

2月13日12:17,史蒂文宏基" < dudest ... @ gmail.comwrote:
On 13 Feb., 12:17, "steven acer" <dudest...@gmail.comwrote:

hello,

i有一个java应用程序,它从特定的文件格式构造一个xml

反之亦然。

我被要求将其转换为c ++,但我不是c ++专家,

其实我是你可以说只是初学者。
hello,
i have a java app that constructs an xml from a specific file format
and vice versa.
i''ve been asked to convert it to c++, but im not an expert in c++,
actually im mere beginner you can say.



我不确定这是一个公平的第一工作。

I am not sure that is a fair "first" job.


i虽然有几个问题:

1-有没有相当于java'的流

类(ByteArrayInputStream,InputStreamRedare,Dat aInputStream ..)
i got a couple of questions though:
1- is there any equivalent to java''s Stream
classes(ByteArrayInputStream,InputStreamRedare,Dat aInputStream ..)



是。对于格式化的IO,您可能需要std :: ofstream。对于

unformatted / binary,你可以使用streambuffer或C文件

iosystem。你最好研究一下。

Yes. For formatted IO you probably need an std::ofstream. For
unformatted/binary, you could use a streambuffer or the C file
iosystem. You better study that.


2-如何在c ++中打开字节(char)数组上的流,以便

读取它作为文字。我有一个字节数组,我需要从中删除一些字节

然后将其传递给文本流。
2- how to open a stream on a byte ( char) array in c++ in order to
read it as text. i have a byte array i need to strip off some bytes
from and then pass it to a text stream.



您应该阅读文档,并在此处的

问题中更具体。这并不困难,但如果没有更多的知识,我们就无法回答。

You should read the documentation and be more specific in your
question here. It''s not difficult, but we can''t answer without more
knowledge of your problem.


3-我知道字符串在''\ 0'中以c ++中的空字符结尾。
3- i know strings are ended in ''\0'' the null character in c++.



实际上这是假的。 C字符串以null结尾,C ++字符串

不是。

That is false, actually. C strings are null-terminated, C++ strings
are not.


我希望解析

fil,xml-to-be-elements由''\0''分隔,如何使用''\ 0''作为我的分隔符将读取的文本拆分为字符串,而不会使用b ++混淆c / b

in the
fil i want to parse, xml-to-be-elements are separated by ''\0'', how can
i split the read text into strings using ''\0'' as my delimiter without
confusing c++.



这又取决于你的要求。

This again depends on your requirements.


4-最重要的:如何解析和构建在c ++中的xml是

那里有api for which以及在哪里找到它?
4- the most important : how to parse and construct xml in c++, is
there any api for that and where to find it?



C ++有几个不错的xml解析器。一个简短的谷歌应该给你一个候选人
。选择一个可能更多是一个政治决定

由贵公司制作。

There are several nice xml-parsers for C++. A short google should give
you a candidate. Choosing one probably is more of a political decision
to be made by your company.


5-最后一个坚果不是最小的,因为我的目标Windows,使用非托管Visual C ++会更好吗?
。它是否有类型我要求b $ b寻找,并且它能否轻松完成任务?

哦,我使用g ++ for windows。
5- last nut not least , since im targetting Windows , would it be
better to use unmanaged Visual C++ . does it have the types i am
looking for,and does it make it easy to accomplish the task ?
oh and i use g++ for windows.



只有一个C ++ - 即我们在这个
新闻组中讨论的语言。微软已经创建了一种新语言,它可以用于某些原因调用托管C ++,但它不是C ++。 托管C ++可能

可能是编程的好语言,但它不能用于移植到C ++的




/ Peter

There is only one C++ - namely the language we discuss in this
newsgroup. Microsoft has created a new language which they for some
reason call "managed C++", but it is not C++. "Managed C++" might
likely be a fine language for programming, but it can''t be used for
porting to C++.

/Peter


On Tue,2007年2月13日04:00:26 -0800,peter koch写道:
On Tue, 13 Feb 2007 04:00:26 -0800, peter koch wrote:

2月13日12:17,steven acer写道:
On 13 Feb., 12:17, "steven acer" wrote:

> hello,
我有一个java应用程序,它从特定的文件格式构建一个xml,反之亦然。
实际上我只是初学者,你可以说。
>hello,
i have a java app that constructs an xml from a specific file format
and vice versa.
i''ve been asked to convert it to c++, but im not an expert in c++,
actually im mere beginner you can say.



我不确定这是一个公平的第一工作。

I am not sure that is a fair "first" job.


>我有几个问题:
1-是否有任何等同于java'的Stream
类(ByteArrayInputStream, InputStreamRedare,Da taInputStream ..)
>i got a couple of questions though:
1- is there any equivalent to java''s Stream
classes(ByteArrayInputStream,InputStreamRedare,Da taInputStream ..)



是的。对于格式化的IO,您可能需要std :: ofstream。


Yes. For formatted IO you probably need an std::ofstream.



(你的意思是std :: ifstream吗?)

(did you mean std::ifstream ?)


对于无格式/二进制,你可以使用streambuffer或C文件

iosystem。你最好研究一下。
For unformatted/binary, you could use a streambuffer or the C file
iosystem. You better study that.



更容易使用其中一个std :: ifstream :: get()函数,或者更好

std :: ifstream :: read ();但您可能不需要使用未格式化的输入 - 请参阅

以下。

Easier to use one of the std::ifstream::get() functions, or better
std::ifstream::read(); but you may not need to use unformatted input - see
below.


> 2- how在c ++中打开字节(char)数组上的流,以便将其作为文本读取。我有一个字节数组,我需要从中删除一些字节,然后将其传递给文本流。
>2- how to open a stream on a byte ( char) array in c++ in order to
read it as text. i have a byte array i need to strip off some bytes
from and then pass it to a text stream.



您应该阅读文档,并在此处的

问题中更具体。这并不困难,但如果没有更多的知识,我们就无法回答。

You should read the documentation and be more specific in your
question here. It''s not difficult, but we can''t answer without more
knowledge of your problem.


> 3- i知道字符串以''\ 0''结尾于c ++中的空字符。
>3- i know strings are ended in ''\0'' the null character in c++.



实际上这是假的。 C字符串以null结尾,C ++字符串

不是。

That is false, actually. C strings are null-terminated, C++ strings
are not.



更确切地说:C ++字符串类std :: string可能不是使用以null结尾的字符数组实现的
(标准没有

需要这个。)

To be more precise: the C++ string class std::string is probably not
implemented using null-terminated character arrays (the standard does not
require this).


>在
fil我想要解析,xml-to-be-elements由''\ 0'分隔,怎么可以把读取文本分成字符串使用''\ 0''作为我的分隔符而不会混淆C ++。
>in the
fil i want to parse, xml-to-be-elements are separated by ''\0'', how can
i split the read text into strings using ''\0'' as my delimiter without
confusing c++.



也许您可以使用std :: getline()指定''\0''作为分隔符来阅读

你的xml元素直接进入std :: string'。你不会混淆C ++那种方式,你不必乱用内存管理,你的

元素最终会得到很好的C ++风格的字符串。


/.../


-

Lionel B

Perhaps you could use std::getline() specifying ''\0'' as delimiter to read
your xml elements straight into std::string''s. You won''t confuse C++ that
way, you won''t have to mess around with memory management and your
elements end up in nice C++-style strings.

/.../

--
Lionel B


2月13日13:48,Lionel B< m ... @ privacy.netwrote:
On 13 Feb., 13:48, Lionel B <m...@privacy.netwrote:

2007年2月13日星期二04:00:26 - 0800,peter koch写道:
On Tue, 13 Feb 2007 04:00:26 -0800, peter koch wrote:

2月13日12:17,steven acer写道:
On 13 Feb., 12:17, "steven acer" wrote:



[snip]

[snip]


是。对于格式化的IO,您可能需要std :: ofstream。
Yes. For formatted IO you probably need an std::ofstream.



(你的意思是std :: ifstream?)


(did you mean std::ifstream ?)



是的。

Yup.


>
>

对于未格式化/二进制,您可以使用streambuffer或C文件

iosystem。你最好研究一下。
For unformatted/binary, you could use a streambuffer or the C file
iosystem. You better study that.



更容易使用其中一个std :: ifstream :: get()函数,或者更好

std :: ifstream :: read ();但您可能不需要使用未格式化的输入 - 请参阅下面的


Easier to use one of the std::ifstream::get() functions, or better
std::ifstream::read(); but you may not need to use unformatted input - see
below.



什么是更容易要看。我在C ++中使用二进制IO的经验已经是一个分层的C文件io,用于简单的IO作业,因为OP具有

或者转向金属。对于具有高性能要求的IO(或者说b
大文件:据我所知,MSVC仍然只支持文件的IO

到2GB)。

[snip]

What is "easier" depends. My experience with binary IO in C++ has
either been a layered above C file io for simple IO jobs as the OP has
or going "to the metal" for IO with high performance requirements (or
large files: so far as I know MSVC still only supports IO for files up
to 2GB).
[snip]


3-我知道字符串以''\0结尾''是c ++中的空字符。
3- i know strings are ended in ''\0'' the null character in c++.



实际上这是假的。 C字符串以null结尾,C ++字符串

不是。

That is false, actually. C strings are null-terminated, C++ strings
are not.



更确切地说:C ++字符串类std :: string可能不是使用以null结尾的字符数组实现的
(标准没有

要求这个)。


To be more precise: the C++ string class std::string is probably not
implemented using null-terminated character arrays (the standard does not
require this).



该标准允许嵌入空值并且还有其他要求

禁止std :: string实现为以null结尾的

string。


[snip]


/ Peter

The standard allows embedded nulls and also has other requirements
that forbids std::string to be implemented as a null-terminated
string.

[snip]

/Peter


这篇关于需要帮助将java转换为c ++的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆