Hello, This is my first post in this group. Please correct me if I make some mistake in asking my question. (I have not found any specific "posting guide" for this group.)
I'm accustomed to use sscanf in C and Octave, and it is one of the first things that I missed when started using Julia. I'm not sure of the reason why it is not implemented (on the other hand there is the @sprintf macro). Of course, regular expressions can do that work as well, and perhaps Julia developers have reasons to prefer that option to a scanf-like function. But I have not found any statement about this topic in the manual, this group or anywhere else. Ok, be that as it may... I tried to call the C function sscanf with ccall (at least for fun, if not for practical reasons), but I have not been able to make it work to scan float variables. For example, this does work (using int and string variables): ## C equivalent code: # int hour, minutes; # char ampm[3]; # sscanf("12:30 AM", "%d:%d %s", &hour, &minutes, ampm); hour = Int32[0] minutes = Int32[0] ampm = "??" ccall(:sscanf, Int32, (Ptr{Uint8}, Ptr{Uint8}, Ptr{Int32}, Ptr{Int32}, Ptr{ Uint8}), "12:30 AM", "%d:%d %s", hour, minutes, ampm) However, if I want to scan a float, sscanf fails to parse the string. E.g. replace "hour" or "minutes" by a Float64 - or Float32 - array, and change the corresponding "%d" in the pattern string by "%f", "%g", "%e", etc.; in that case ccall returns 0, and the variables do not change. Any idea of why? I'm using Julia 0.2.1 for Windows 32 bit in Windows 7. Please let me know if you need more details. By the way, you will see in the example that in the first argument to ccall I have only put the name of the C function, instead of a tuple including the name of the C library ("stdio" in this case). The reason is that using the tuple throws an error ("error compiling anonymous: could not load module stdio: no error"). Does it anything to do with my not having MinGW or any other compiler installed in my machine?