]> git.saurik.com Git - apple/icu.git/blobdiff - icuSources/samples/citer/citer.cpp
ICU-57132.0.1.tar.gz
[apple/icu.git] / icuSources / samples / citer / citer.cpp
index 7561e74dbbebe9ba9f3bcc2a8c54f2113208c23c..a4a408bdd7c221c1b57a1a38e8dcd359a921e205 100644 (file)
@@ -1,8 +1,8 @@
 /*
 *******************************************************************************
 *
 /*
 *******************************************************************************
 *
-*   Copyright (C) 2002-2003, International Business Machines
-*   Corporation and others.  All Rights Reserved.
+*     Copyright (C) 2002-2011, International Business Machines
+*     Corporation and others.    All Rights Reserved.
 *
 *******************************************************************************
 */
 *
 *******************************************************************************
 */
 #include "unicode/schriter.h"
 #include "unicode/ustring.h"
 #include <stdio.h>
 #include "unicode/schriter.h"
 #include "unicode/ustring.h"
 #include <stdio.h>
-#include <iostream.h>
 #include <unicode/brkiter.h>
 #include <unicode/brkiter.h>
+#include <unicode/ustdio.h>
 #include <stdlib.h>
 
 #include <stdlib.h>
 
-void printUnicodeString(const UnicodeString &s) {
-  char charBuf[1000];
-  s.extract(0, s.length(), charBuf, sizeof(charBuf)-1, 0);   
-  charBuf[sizeof(charBuf)-1] = 0;          
-  cout << charBuf;
+static UFILE *out;
+
+void printUnicodeString(const UnicodeString &s)
+{
+    u_fprintf(out, "%S", &s);
 }
 
 }
 
-void printUChar(UChar32 ch) {
-  char charBuf[1000];
-  charBuf[sizeof(charBuf)-1] = 0;          
-  if(ch < 127) {
-    cout << (char) ch;
-  } else if (ch == CharacterIterator::DONE) {
-    cout << "[CharacterIterator::DONE = 0xFFFF]";
-  } else {
-    cout << "[" << ch << "]";
-  }
+void printUChar(UChar32 ch)
+{
+    if(ch < 127) {
+        u_fprintf(out, "%C", (UChar) ch);
+    } else if (ch == CharacterIterator::DONE) {
+        u_fprintf(out, "[CharacterIterator::DONE = 0xFFFF]");
+    } else {
+        u_fprintf(out, "[%X]", ch);
+    }
 }
 
 class Test
 {
 public:
 }
 
 class Test
 {
 public:
-  void TestUChariter();
-  void TestStringiter();
+    void TestUChariter();
+    void TestStringiter();
 };
 
 void Test::TestUChariter() {
 };
 
 void Test::TestUChariter() {
-  const char testChars[] = "Now is the time for all good men to come "
-    "to the aid of their country.";
-
-  UnicodeString testString(testChars,"");
-  const UChar *testText  = testString.getTerminatedBuffer();
-
-  UCharCharacterIterator iter(testText, u_strlen(testText));
-  UCharCharacterIterator* test2 = (UCharCharacterIterator*)iter.clone();
-  
-  cout << "testText = " << testChars;
-  
-  if (iter != *test2 ) {
-    printf("clone() or equals() failed: Two clones tested unequal\n");
-  }
-  
-  UnicodeString result1, result2;
-  // getting and comparing the text within the iterators
-  iter.getText(result1);
-  test2->getText(result2);
-  if (result1 != result2) {
-    printf("iter.getText() != clone.getText()\n");
-  } 
-  
-  cout << endl;
-  // Demonstrates seeking forward using the iterator.
-  cout << "Forward  = ";
-  
-  UChar c = iter.first();
-  printUChar(c);  // The first char
-  int32_t i = 0;
-  
-  if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) {
-    printf("startIndex() or endIndex() failed\n");
-  }
-  
-  
-  // Testing forward iteration...
-  do {
-    if (c == CharacterIterator::DONE && i != u_strlen(testText)) {
-      printf("Iterator reached end prematurely");
-    }
-    else if (c != testText[i]) {
-      printf("Character mismatch at position %d\n" + i);
-    }
-    if (iter.current() != c) {
-      printf("current() isn't working right");
-    }
-    if (iter.getIndex() != i) {
-            printf("getIndex() isn't working right\n");
+    const char testChars[] = "Now is the time for all good men to come "
+        "to the aid of their country.";
+
+    UnicodeString testString(testChars,"");
+    const UChar *testText = testString.getTerminatedBuffer();
+
+    UCharCharacterIterator iter(testText, u_strlen(testText));
+    UCharCharacterIterator* test2 = (UCharCharacterIterator*)iter.clone();
+
+    u_fprintf(out, "testText = %s", testChars);
+
+    if (iter != *test2 ) {
+        u_fprintf(out, "clone() or equals() failed: Two clones tested unequal\n");
     }
     }
-    if (c != CharacterIterator::DONE) {
-      c = iter.next();
-      i++;
+
+    UnicodeString result1, result2;
+    // getting and comparing the text within the iterators
+    iter.getText(result1);
+    test2->getText(result2);
+    if (result1 != result2) {
+        u_fprintf(out, "iter.getText() != clone.getText()\n");
+    } 
+
+    u_fprintf(out, "\n");
+
+    // Demonstrates seeking forward using the iterator.
+    u_fprintf(out, "Forward  = ");
+
+    UChar c = iter.first();
+    printUChar(c);    // The first char
+    int32_t i = 0;
+
+    if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) {
+        u_fprintf(out, "startIndex() or endIndex() failed\n");
     }
     }
-    
-    cout << "|";
-    printUChar(c);
-        
-  } while (c != CharacterIterator::DONE);    
-  
-  delete test2;
-  cout << endl;
+
+
+    // Testing forward iteration...
+    do {
+        if (c == CharacterIterator::DONE && i != u_strlen(testText)) {
+            u_fprintf(out, "Iterator reached end prematurely");
+        }
+        else if (c != testText[i]) {
+            u_fprintf(out, "Character mismatch at position %d\n" + i);
+        }
+        if (iter.current() != c) {
+            u_fprintf(out, "current() isn't working right");
+        }
+        if (iter.getIndex() != i) {
+            u_fprintf(out, "getIndex() isn't working right\n");
+        }
+        if (c != CharacterIterator::DONE) {
+            c = iter.next();
+            i++;
+        }
+
+        u_fprintf(out, "|");
+        printUChar(c);
+
+    } while (c != CharacterIterator::DONE);        
+
+    delete test2;
+    u_fprintf(out, "\n");
 }
 
 
 void Test::TestStringiter() {
 }
 
 
 void Test::TestStringiter() {
-  const char testChars[] = "Now is the time for all good men to come "
-    "to the aid of their country.";
-
-  UnicodeString testString(testChars,"");
-  const UChar *testText  = testString.getTerminatedBuffer();
-  
-  StringCharacterIterator iter(testText, u_strlen(testText));
-  StringCharacterIterator* test2 = (StringCharacterIterator*)iter.clone();
-  
-  if (iter != *test2 ) {
-    printf("clone() or equals() failed: Two clones tested unequal\n");
-  }
-  
-  UnicodeString result1, result2;
-  // getting and comparing the text within the iterators
-  iter.getText(result1);
-  test2->getText(result2);
-  if (result1 != result2) {
-    printf("getText() failed\n");
-  }
-
-  cout << "Backwards: ";
-  UChar c = iter.last();
-  printUChar(c);
-  int32_t i = iter.endIndex();
-  i--; // already printed out the last char 
-  if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) {
-    printf("startIndex() or endIndex() failed\n");
-  }
-  
-  // Testing backward iteration over a range...
-  do {
-    if (c == CharacterIterator::DONE) {
-      printf("Iterator reached end prematurely\n");
-    }
-    else if (c != testText[i]) {
-      printf("Character mismatch at position %d\n" + i);
-    }
-    if (iter.current() != c) {
-      printf("current() isn't working right\n");
-    }
-    if (iter.getIndex() != i) {
-      printf("getIndex() isn't working right [%d should be %d]\n", iter.getIndex(), i);
+    const char testChars[] = "Now is the time for all good men to come "
+        "to the aid of their country.";
+
+    UnicodeString testString(testChars,"");
+    const UChar *testText    = testString.getTerminatedBuffer();
+
+    StringCharacterIterator iter(testText, u_strlen(testText));
+    StringCharacterIterator* test2 = (StringCharacterIterator*)iter.clone();
+
+    if (iter != *test2 ) {
+        u_fprintf(out, "clone() or equals() failed: Two clones tested unequal\n");
     }
     }
-    if (c != CharacterIterator::DONE) {
-      c = iter.previous();
-      i--;
+
+    UnicodeString result1, result2;
+    // getting and comparing the text within the iterators
+    iter.getText(result1);
+    test2->getText(result2);
+    if (result1 != result2) {
+        u_fprintf(out, "getText() failed\n");
     }
     }
-    cout << "|";
+
+    u_fprintf(out, "Backwards: ");
+
+    UChar c = iter.last();
+    int32_t i = iter.endIndex();
+
     printUChar(c);
     printUChar(c);
-  } while (c != CharacterIterator::DONE);
+    i--; // already printed out the last char 
+
+    if (iter.startIndex() != 0 || iter.endIndex() != u_strlen(testText)) {
+        u_fprintf(out, "startIndex() or endIndex() failed\n");
+    }
 
 
-  cout << endl;
-  delete test2;
+    // Testing backward iteration over a range...
+    do {
+        if (c == CharacterIterator::DONE) {
+            u_fprintf(out, "Iterator reached end prematurely\n");
+        }
+        else if (c != testText[i]) {
+            u_fprintf(out, "Character mismatch at position %d\n", i);
+        }
+        if (iter.current() != c) {
+            u_fprintf(out, "current() isn't working right\n");
+        }
+        if (iter.getIndex() != i) {
+            u_fprintf(out, "getIndex() isn't working right [%d should be %d]\n", iter.getIndex(), i);
+        }
+        if (c != CharacterIterator::DONE) {
+            c = iter.previous();
+            i--;
+        }
+
+        u_fprintf(out, "|");
+        printUChar(c);
+    } while (c != CharacterIterator::DONE);
+
+    u_fprintf(out, "\n");
+    delete test2;
 }
 
 /* Creating and using text boundaries */
 int main( void )
 {
 }
 
 /* Creating and using text boundaries */
 int main( void )
 {
-  cout << "ICU Iterator Sample Program (C++)\n\n";
-  
-  Test t;
-  
-  cout << endl;
-  cout << "Test::TestUCharIter()" << endl;
-  t.TestUChariter();
-  cout << "-----" << endl;
-  cout << "Test::TestStringchariter()" << endl;
-  t.TestStringiter();
-  cout << "-----" << endl;
-  
-  return 0;
+    UErrorCode status = U_ZERO_ERROR;
+
+    out = u_finit(stdout, NULL, NULL);
+
+    u_fprintf(out, "ICU Iteration Sample Program (C++)\n\n");
+
+    Test t;
+
+    u_fprintf(out, "\n");
+    u_fprintf(out, "Test::TestUCharIter()\n");
+
+    t.TestUChariter();
+
+    u_fprintf(out, "-----\n");
+    u_fprintf(out, "Test::TestStringchariter()\n");
+
+    t.TestStringiter();
+
+    u_fprintf(out, "-----\n");
+
+    return 0;
 }
 }