digitalmars.D - problems printing a dchar
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