digitalmars.D - problems printing a dchar
- Orgoton <orgoton mindless.com> Feb 25 2007
- torhu <fake address.dude> Feb 25 2007
this code will result on a win32 exception when trying to writefln "nomeEnt"
import std.stdio;
import std.intrinsic;
import std.stream;
import std.string;
int main()
{
ushort tamanho;
ubyte[] buffer1, buffer2;
dchar[255] nomeEnt='\0', nomeSai;
writef("Introduza o tamanho da matrix de encriptacao: ");
scanf("%d", &tamanho);
buffer1.length=tamanho*tamanho;
buffer2.length=tamanho*tamanho;
writef("Introduza o nome do ficheiro a encriptar: ");
scanf("%s", &nomeEnt);
writef("Abrindo " );
getch();
writefln(nomeEnt);
//File fichEnt=new File(nomeEnt, FileMode.In);
//buffer1.length=0;
//buffer2.length=0;
return 0;
}
Also, changing "dchar" to "char" will print the string, but will also cause the
program to throw "invalid UTF-8 sequence. Suggestions?
Feb 25 2007
Orgoton wrote:this code will result on a win32 exception when trying to writefln "nomeEnt" import std.stdio; import std.intrinsic; import std.stream; import std.string; int main() { ushort tamanho; ubyte[] buffer1, buffer2; dchar[255] nomeEnt='\0', nomeSai; writef("Introduza o tamanho da matrix de encriptacao: "); scanf("%d", &tamanho); buffer1.length=tamanho*tamanho; buffer2.length=tamanho*tamanho; writef("Introduza o nome do ficheiro a encriptar: "); scanf("%s", &nomeEnt); writef("Abrindo " ); getch(); writefln(nomeEnt); //File fichEnt=new File(nomeEnt, FileMode.In); //buffer1.length=0; //buffer2.length=0; return 0; } Also, changing "dchar" to "char" will print the string, but will also cause the program to throw "invalid UTF-8 sequence. Suggestions?
scanf doesn't work with utf-32. Try looking at std.cstream instead.
Feb 25 2007








torhu <fake address.dude>