Printf (C++) je …?
Tuesday, October 9th, 2007Večkrat sem že slišal, da funkcija printf (v C/C++) izpiše besedilo NA ZASLON. Kdo si je to sploh izmislil? Res je, da je to največkrat namenjenu izpisovanju na zaslon, vendar ni nujno.
Primer v katerem se vidi, da ni nujno, da izpiše na zaslon:
C++:
#include <iostream>
int main()
{
printf(”abc”);
}
PHP:
<?php
$program=exec(”test.exe”);if($program==”abc”)
{
echo “da”;
}else{
echo “ne”;
}
?>
Čisto preprost primer, vendar pokaže, da trditev “Funkcija printf izpiše besedilo na zaslon.” ne drži.
Torej pravilno bi bilo recimo nekaj takega: “Funkcija printf vrne besedilo.” ali “Funkcija printf izpiše besedilo. (manj primerno)”
Še nekaj za C# programerje (ker podobno pravijo tudi za C#, vendar pri njemu je funkcija Console.WriteLine):
Konzolna aplikacija:
using System;
using System.Collections.Generic;
using System.Text;namespace Program
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(”Testni izpis”);
string x=Console.ReadLine();
Console.WriteLine(x);
}
}
}
Še spletna aplikacija (.aspx):
<%@ Page Language=”C#” AutoEventWireup=”true” Debug=”true” CodeFile=”Default.aspx.cs” Inherits=”_Default” %>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” >
<head runat=”server”>
<title>Testna stran</title>
</head>
<body>
<form id=”form1″ runat=”server”>
<div>
</div>
</form>
</body>
</html>
Še .cs datoteka za spletno aplikacijo:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string pot = Request.PhysicalApplicationPath + “Program.exe”;
System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(pot);
psi.UseShellExecute = false;
psi.RedirectStandardOutput = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardError = true;System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);
System.IO.StreamReader sr = proc.StandardOutput;
System.IO.StreamWriter sw = proc.StandardInput;sw.WriteLine(Request.QueryString[”kaj”]);
string prebrano=sr.ReadToEnd();
Response.Write(”Izpis je:<br />” + prebrano.Replace(System.Environment.NewLine, “<br />”));sr.Close();
sw.Close();proc.Close();
proc.Dispose();
}
}
![]()