Search Results

Search found 7 results on 1 pages for 'hamishmcn'.

Page 1/1 | 1 

  • problem using getline with a unicode file

    - by hamishmcn
    UPDATE: Thank you to @Potatoswatter and @Jonathan Leffler for comments - rather embarrassingly I was caught out by the debugger tool tip not showing the value of a wstring correctly - however it still isn't quite working for me and I have updated the question below: If I have a small multibyte file I want to read into a string I use the following trick - I use getline with a delimeter of '\0' e.g. std::string contents_utf8; std::ifstream inf1("utf8.txt"); getline(inf1, contents_utf8, '\0'); This reads in the entire file including newlines. However if I try to do the same thing with a wide character file it doesn't work - my wstring only reads to the the first line. std::wstring contents_wide; std::wifstream inf2(L"ucs2-be.txt"); getline( inf2, contents_wide, wchar_t(0) ); //doesn't work For example my if unicode file contains the chars A and B seperated by CRLF, the hex looks like this: FE FF 00 41 00 0D 00 0A 00 42 Based on the fact that with a multibyte file getline with '\0' reads the entire file I believed that getline( inf2, contents_wide, wchar_t(0) ) should read in the entire unicode file. However it doesn't - with the example above my wide string would contain the following two wchar_ts: FF FF (If I remove the wchar_t(0) it reads in the first line as expected (ie FE FF 00 41 00 0D 00) Why doesn't wchar_t(0) work as a delimiting wchar_t of "00 00"? Thank you

    Read the article

  • Which is more user friendly: TortoiseGIT or TortoiseHG?

    - by hamishmcn
    I have been experimenting with using Mercurial and TortoiseHG to track my work when I am working remotely (with a slow VPN I don't want to commit to SVN unless I have something that works). I have found TortoiseHG a bit hard to use - or at least it often doesn't work the way I expect it to, so I am considering switching to GIT and TortoiseGIT. (For example I had problems rolling back source code to an earlier version and I still don't know what I did wrong) My question whether they have a similar level of functionality / user friendliness or whether one is better than the other. What has your experience been?

    Read the article

  • Trying to use boost lambda, but my code won't compile

    - by hamishmcn
    Hi, I am trying to use boost lambda to avoid having to write trivial functors. For example, I want to use the lambda to access a member of a struct or call a method of a class, eg: #include <vector> #include <utility> #include <algorithm> #include <boost/lambda/lambda.hpp> using namespace std; using namespace boost::lambda; vector< pair<int,int> > vp; vp.push_back( make_pair<int,int>(1,1) ); vp.push_back( make_pair<int,int>(3,2) ); vp.push_back( make_pair<int,int>(2,3) ); sort(vp.begin(), vp.end(), _1.first > _2.first ); When I try and compile this I get the following errors: error C2039: 'first' : is not a member of 'boost::lambda::lambda_functor<T>' with [ T=boost::lambda::placeholder<1> ] error C2039: 'first' : is not a member of 'boost::lambda::lambda_functor<T>' with [ T=boost::lambda::placeholder<2> ] Since vp contains pair<int,int> I thought that _1.first should work. What I am doing wrong?

    Read the article

  • C++: How to extract a string from rapidxml

    - by hamishmcn
    In my C++ program I want to parse a small piece of XML, insert some nodes, then extract the new XML (preferably as a std::string) RapidXML (http://rapidxml.sourceforge.net/) has been recommended to me, but I can't see how to retrieve the XML back as a text string. (I could iterate over the nodes and attributes and build it myself, but surely there's a build in function that I am missing) Thank you

    Read the article

  • App no longer working - any ideas

    - by hamishmcn
    I am out of ideas as to why my app has suddenly stopped working - perhaps the collective mind of the SO community can help... Background: I have a large application that has been working up until recently. Now when ever I try and run it I get the error "The application failed to initialize properly (0xc0000005)" This happens before the app gets to _tmain(). It happens in both release and debug builds. I have tried cleaning and rebuilding the projects and rebooted my PC. The call stack just shows entries for kernel32.dll and ntdll.dll The output window shows: First-chance exception at 0x00532c13 in a.exe: 0xC0000005: Access violation reading location 0xabababdb. First-chance exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation. Unhandled exception at 0x7c964ed1 in a.exe: 0xC0000005: Access violation. Any ideas? Edit: Okay - found the problem - it was dll related my app uses shared dlls a.dll and b.dll (and others) a.dll hardly every changes (and uses b.dll) b.dll was changed by another developer this morning and a.dll was not rebuilt. Depends.exe did not show any missing dlls, however a.dll no longer works because of the change to b.dll

    Read the article

  • C++ template type deduction problem

    - by hamishmcn
    motivation: I would like to create a utility class so that instead of having to write: if( someVal == val1 || someVal == val2 || someVal == val3 ) I could instead write: if( is(someVal).in(val1, val2, val3) ) which is much closer to the mathematical 'a is an element of (b,c,d)' and also would save on a lot of typing when the variable name 'someVal' is long. Here is the code I have so far (for 2 and 3 values): template<class T> class is { private: T t_; public: is(T t) : t_(t) { } bool in(const T& v1, const T& v2) { return t_ == v1 || t_ == v2; } bool in(const T& v1, const T& v2, const T& v3) { return t_ == v1 || t_ == v2 || t_ == v3; } }; However it fails to compile if I write: is(1).in(3,4,5); instead I have to write is<int>(1).in(3,4,5); Which isn't too bad, but it would be better if somehow the compiler could figure out that the type is int with out me having to explicitly specify it. Is there anyway to do this or I am stuck with specifying it explicitly?

    Read the article

  • problems with Console.SetOut in Release Mode?

    - by Matt Jacobsen
    i have a bunch of Console.WriteLines in my code that I can observe at runtime. I communicate with a native library that I also wrote. I'd like to stick some printf's in the native library and observe them too. I don't see them at runtime however. I've created a convoluted hello world app to demonstrate my problem. When the app runs, I can debug into the native library and see that the hello world is called. The output never lands in the textwriter though. Note that if the same code is run as a console app then everything works fine. C#: [DllImport("native.dll")] static extern void Test(); StreamWriter writer; public Form1() { InitializeComponent(); writer = new StreamWriter(@"c:\output.txt"); writer.AutoFlush = true; System.Console.SetOut(writer); } private void button1_Click(object sender, EventArgs e) { Test(); } and the native part: __declspec(dllexport) void Test() { printf("Hello World"); } Update: hamishmcn below started talking about debug/release builds. I removed the native call in the above button1_click method and just replaced it with a standard Console.WriteLine .net call. When I compiled and ran this in debug mode the messages were redirected to the output file. When I switched to release mode however the calls weren't redirected. Console redirection only seems to work in debug mode. How do I get around this?

    Read the article

1