小编ST3*_*ST3的帖子

Windows上的iostream,wifstream和eclipse/g ++

我在Windows上使用Eclipse和MinGW工具链(g ++等).我有一个我在darwin上构建的程序,它使用wifstream和wofstream读取和写入文件.该程序的编译和工作在darwin(Mac)上使用eclipse找到...没有我的问题.

当我将代码移动到Windows并尝试使用MinGW工具链和eclipse进行构建时,我在wifstream,wofstream和wcout上遇到编译错误.定义为wstring的变量编译得很好.

例如:

wifstream inFile; inFile.open(argv [2],ios_base :: in);

导致编译错误

..\src\pdConv.cpp:31:错误:在此范围内未声明`wifstream'

这似乎表明编译器认为wifstream是一个变量.我注意到包含文件中没有启用_GLIBCXX_USE_WCHAR_T指令.我是否需要自己定义,或者环境中应该知道这个?如果我手动定义它,似乎我不能在同一程序中使用宽和窄的实现.

这可能是显而易见的,但我一直坚持这个问题很久......哈哈.我在这里错过了什么?

g++ wifstream wofstream

0
推荐指数
1
解决办法
1243
查看次数

sed或awk删除模式匹配之间的行,不包括第二个标记的行

我有一个sed命令,可以成功打印匹配两个模式的行:

 sed -n '/PAGE 2/,/\x0c/p' filename.txt
Run Code Online (Sandbox Code Playgroud)

我没想到的是,我希望它能够打印第一个令牌中的所有行,直到第二个令牌.该\x0c令牌是在一个大平面文件记录分隔符,我需要保持该行不变.

在两个令牌之间,数据是完全可变的,我没有可靠的锚来使用.

[澄清]现在它打印所有行/PAGE 2//\x0c/包含.我希望它打印/PAGE 2//\x0c/记录中的下一个.

[测试数据] /x0c将在第一行的开头和此记录的最后一行的开头.

我需要通过下一条记录开头之前的行删除记录的第一行.

^L20-SEP-2006 01:54:08 PM         Foobars College                          PAGE 2
TERM: 200610               Student Billing Statement                     SUMDATA
99999

Foo bar                                                              R0000000
999 Geese Rural Drive                                           DUE: 15-OCT-2012
Columbus, NE 90210

--------------------------------------------------------------------------------
       Balance equal to or greater than $5000.00    $200.00
       Billing inquiries may be directed to 444/555-1212 or by
       email to bursar@foobar.edu.  Financial Aid inquiries should
       be directed …
Run Code Online (Sandbox Code Playgroud)

awk sed

0
推荐指数
1
解决办法
3876
查看次数

java中的虚方法调用 - 多态

package polymordemo1; 

class animal{
    public void getanimal(animal anim) {
        anim.ganim();
    }

    private void ganim() {
        System.out.println("this is the animal");
    }
}

class cat extends animal{
    public void ganim() {
        System.out.println("I am cat");
    }
}

class bat extends animal{
    public void ganim() {
        System.out.println("I am bat");
    }
}
public class PolymorDemo1 {
public static void main(String[] args) {
        animal a=new animal();
        cat c=new cat();
        bat b=new bat();

        a.getanimal(c);
        a.getanimal(b);

    }
}
Run Code Online (Sandbox Code Playgroud)

我是Java的新手,我正在研究多态性.

此代码的输出结果为:

这是动物

这是动物.

事实上我期待这个输出:

这是猫

这是蝙蝠

什么似乎是代码中的错误.

java polymorphism

0
推荐指数
1
解决办法
2073
查看次数

提升unordered_map反向foreach

我发现,BOOST_REVERSE_FOREACH与BOOST_FOREACH的工作方式不同.

我的代码:

#include <boost\unordered_map.hpp>
#include <boost\foreach.hpp>
#include <iostream>
#include <string>

typedef boost::unordered_map<std::string, int> map;

int main()
{
    map MyMap;

    MyMap["two"] = 2;
    MyMap["three"] = 3;
    MyMap["one"] = 1;

    std::cout << MyMap["one"] << MyMap["two"] << MyMap["three"] << std::endl;

    BOOST_FOREACH (map::value_type value, MyMap)
    {
        std::cout << value.second;
    }
    std::cout << std::endl;

    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我也想使用反向迭代.所以我补充说:

BOOST_REVERSE_FOREACH (map::value_type value, MyMap)
{
    std::cout << value.second;
}
std::cout << std::endl;
Run Code Online (Sandbox Code Playgroud)

在此之后它无法编译,是否有人可以告诉如何在无序地图上使用反向foreach.

编译器给出:

1>c:\boost_1_52_0\boost\iterator\reverse_iterator.hpp(45): error C2675: unary '--' : 'boost::unordered::iterator_detail::iterator<NodePointer,Value>' does not define this operator …
Run Code Online (Sandbox Code Playgroud)

c++ iteration reverse boost unordered-map

0
推荐指数
1
解决办法
1777
查看次数

为什么字符串有时写在一个方向,有时在另一个方向?

这是代码:

byte bytes[] = {0x2e, 0x20, 0x65, 0x00, 0x74, 0x00, 0x61, 0x00, 0x64, 0x00, 0x70, 0x00, 0x75, 0x00, 0x67, 0x00};
std::wstring s;
s.resize( 8 );
memcpy( &s[0], bytes, 16 );

_tprintf( _T("key: %s\n"), s.c_str());
MessageBox ( 0, s.c_str(), _T(""), 0 );
Run Code Online (Sandbox Code Playgroud)

消息框中的结果gupdate位于控制台中?etadpug.

我认为这是编码.0x2e20或0x202e是什么意思吗?

c++ encoding byte-order-mark wstring

0
推荐指数
1
解决办法
147
查看次数

找到一个数字的百分比

我想创建一个函数,它返回一个数字的百分比作为int(在这种情况下为10%,因此它将返回传入的int的10%),例如,如果你传递76,它将返回8.基本上它就像下面的功能,但我认为必须有一个更好的方法来做到这一点.

int percent(int y){
    int x;
    if(y >= 95)
        return 10;
    else if(y >= 85)
        return 9;
    else if(y >= 75)
        return 8;
    ...
}
Run Code Online (Sandbox Code Playgroud)

c c++ algorithm performance

0
推荐指数
1
解决办法
1192
查看次数

检查字符串中的特定字母

我试图检查字符串中的第一个字母是否为l,l可以是大写或小写,如果是l我想从字符串中修剪它并且我目前正在使用此代码来执行此操作

String firstLetter = result.Text[0].ToString();
if (result.Text.Length == 18)
{
    if (firstLetter.Equals("l".ToString()) || firstLetter.Equals("L".ToString()))
    {
        result.Text.Remove(0, 1);
    }
    if (firstLetter == "l" || firstLetter == "L" || firstLetter == "1")
    {
        result.Text.Remove(0, 1);
    }
    if (result.Text.StartsWith("l".ToString()) || result.Text.ToUpper().StartsWith("L".ToString()))
    {
           result.Text.Remove(0, 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

这些if语句都没有奏效,它们完全被忽略了,为什么它们不起作用?

.net c# string if-statement boolean

0
推荐指数
1
解决办法
248
查看次数

从rx代码到处都没有删除\ r \n

我有一个PHP代码的短信脚本,我通过短信门户网站收到了短信.但在某些消息中,我有\ r和\n但是在短信门户上没有像\ r \n找到的特殊字符

我的消息是 - NOKXX REG WMAH12345

但我有这个 - NOKXX REG WMAH12345\r NOKXX REG WMAH12345 \n NOKXX REG WMAH12345 \n \n NOKXX REG\RWMAH35907

我从get方法获得消息.............

$message = $_GET['message'];// Message content
Run Code Online (Sandbox Code Playgroud)

我试过这个

$message=str_replace("\r\n","",$message);
Run Code Online (Sandbox Code Playgroud)

这也是

$message = trim($message);
// from everywhere
$message = str_replace("\n", "", $message);
$message = str_replace("\r", "", $message);
Run Code Online (Sandbox Code Playgroud)

请建议一些备用

php

0
推荐指数
1
解决办法
121
查看次数

Java中的关键字'of'

我正在阅读GitHub项目(JClouds-Chef)的源代码,偶然发现了最奇特的Java:

Iterable<Module> modules =
    ImmutableSet.<Module> of(new SshjSshClientModule(), new SLF4JLoggingModule(),
        new EnterpriseConfigurationModule());
Run Code Online (Sandbox Code Playgroud)

什么是of?这个有效的Java怎么样?是of方法吗?如果是这样,它在哪里定义?它是一些奇怪的,模糊的Java运算符,几乎没有使用过吗?这是一个像lambda一样古怪的东西吗?我正在撕扯我的头发试图找出它的位置,它做了什么,以及它的定义在哪里!

java syntax

0
推荐指数
1
解决办法
154
查看次数

前面参数中的"&"和"*"是什么意思?

我意识到这些可能是初学者的问题,但为了正确理解概念,我会欣赏可靠的答案或文档链接.

是什么意思&*在参数名称的前面,或后的C++函数的数据类型?

例如:

void ApplicationUI::requestFinished(QNetworkReply* reply) { //... }

要么

void PostHttp::post(const QString &body) { //... }

奖金问题 在上面的post函数中...确实const使得这个函数需要传递常量变量或者它有不同的原因吗?

c++

-1
推荐指数
1
解决办法
6998
查看次数

删除vs删除[]

我有以下情况.

int *arrayP=new int[4];
arrayP[0]=0;arrayP[1]=1;arrayP[2]=2;arrayP[3]=3;
int *temp;
cout<<arrayP[0]<<endl;
temp=arrayP;
++arrayP;
cout<<arrayP[0];
cout<<arrayP[1];
delete temp;
cout<<arrayP[0];
Run Code Online (Sandbox Code Playgroud)

产量

0
1
2
-1212222
Run Code Online (Sandbox Code Playgroud)

为什么会这样?arrayP指向大小为4的数组上的第一个元素.因此temp也指向第一个元素现在为什么删除temp即第一个元素也会删除整个整数array.arrayP会存储数组的下一个元素的地址,因此数组不是孤儿.(我假设它删除了整数数组,因为arrayP [0]显示垃圾值.)

如果是这种情况(即删除temp将删除整个整数数组)删除[]和删除之间的区别.

c++ pointers destructor

-1
推荐指数
1
解决办法
869
查看次数

为什么指针指针是一个矩阵?

我知道在某些情况下,指向指针的指针被描述为矩阵.有人可以解释一下,为什么这种方式有效?哪个C属性允许呢?

请不要发布指针这样的答案指针并不总是矩阵.我知道,但我在问某些情况下为什么它是一个矩阵.

c c++ arrays pointers matrix

-1
推荐指数
1
解决办法
338
查看次数

将浮点数转换为整数定义的行为

今天发现VS2010不支持roundC++项目中的功能.有关该功能的信息已在此处找到.还注意到也没有trunc功能.

所以尝试了一些东西并注意到一些可能有助于这种情况的行为.


float a = 2.999;
int b = (int)a;   //gives 2
Run Code Online (Sandbox Code Playgroud)
float a = -2.999;
int b = (int)a;   //gives -2
Run Code Online (Sandbox Code Playgroud)

这可以作为截断,所以我可以使用它,但是我不想使用导致未定义行为的代码.所以想问一下这是定义的还是未定义的行为.

编辑:因为我正在使用VS2008,所以我不会问C++ 11.

c++ floating-point undefined-behavior

-1
推荐指数
1
解决办法
228
查看次数